Sem problemas, Augusto! Vou tentar explicar de outra forma:
Toda vez que você coloca uma tag como <input>
, <img>
, <form>
etc., o navegador precisa de algumas informações a mais, além do nome da tag em si (input
é o nome da tag <input>
) para mostrar essa tag direitinho no navegador.
O jeito de ela conseguir essas informações a mais é olhando na própria tag, mas nos atributos dela. Por exemplo, na declaração:
<input type="image" src="botao.png">
Temos a declaração de uma tag chamada input
com dois atributos. O primeiro é o atributo type
que foi declarado com o valor image
. O segundo é o atributo src
, que foi declarado com o valor botao.png
. Ou seja, atributos têm nome e valor.
O navegador, então, olha os atributos da sua declaração para saber o que fazer com aquela tag que você escreveu. Mas ele não olha qualquer atributo: ele olha atributos específicos. Por exemplo, a tag input
pode aparecer de diversas formas: botão, caixa de texto, imagem... Para saber qual dessas formas deve ser usada para uma determinada declaração, o navegador sabe que precisa olhar o atributo chamado type
e ver qual valor ele tem naquela declaração.
Da mesma forma, quando ele vê que o valor do atributo type
é image
, ele sabe que precisa procurar um outro atributo na declaração chamado src
para descobrir qual imagem ele deve usar.
Repare que o navegador precisa saber de diversas coisas para conseguir mostrar uma página. Na verdade, não é exatamente ele que sabe, mas sim os programadores que criaram o HTML e os navegadores. Na verdade, eles que decidiram que esses seriam os nomes das tags e dos atributos. Cabe a nós obedecer :)
Ficou mais claro agora?