Por que as pessoas ainda usam tags HTML vazias
Vamos a um assunto pouquíssimo importante, mas divertido: um tipo de tag HTML que não serve de muita coisa mas ainda assim é usado toda hora.
Bom, a sintaxe do HTML prevê dois tipos de tags:
- Tags contêiner: aquelas que precisam de informação dentro. E por precisarem de informação dentro, você precisa dizer onde o elemento começa e onde termina. Por exemplo, se escrever um parágrafo, você deverá digitar algo como
<p>Hello World</p>
, onde<p>
é a tag de abertura do parágrafo e</p>
é a tag de fechamento do parágrafo. - Tags vazias: são aquelas que não precisam de nenhuma informação no interior. Por exemplo, caso você queira inserir uma quebra de linha, basta digitar
<br>
. Não há nenhuma informação a ser contida nessa tag, então você não precisa de um</br>
(de fato, não existe tal coisa em HTML).
E então vemos tags como <br/>
por todo canto da web. Que raios é isso?
Observe que a barra, neste caso, vem depois do “br”, não antes. Isso significa <br></br>
, que acabamos de ver que não faz sentido.
Tags vazias como esta vêm do XHTML – há muito tempo esquecido. Ele foi uma tentativa do W3C de estender o HTML usando a sintaxe do XML em vez da sintaxe do SGML – o padrão original no qual o HTML era baseado. Até o HTML5, ainda havia uma tentativa de definir o HTML como uma aplicação SGML, mas o HTML5 deixou essa tentativa para trás. (O W3C descreveu o HTML4 como “uma aplicação SGML em conformidade com o padrão internacional ISO 8879”.)
O fato é que XML é muito mais rígido do que HTML. Por exemplo, se houver um erro em um documento XML, o documento inteiro simplesmente não será renderizado. Embora haja vantagens nisso, só posso imaginar que uma web baseada em XML estaria sempre mais quebrada que o habitual.
Em sua rigidez, o XML exige que toda tag de abertura tenha uma tag de fechamento correspondente, independentemente de ter informação dentro ou não. Então, você escreveria <br></br>
, que pode ser abreviado usando-se <br/>
. Ambos significam a mesma coisa.
O HTML5 não reclama se vê uma tag vazia como essa, mas apenas para manter compatibilidade. O que acontece sob o capô é que a barra é ignorada, coitada 😢.