Todo navegador que suporta XHTML (Firefox, Opera, Safari, IE9 ) suporta sintaxe de fechamento automático em todos os elementos .
<div/>
, <script/>
, <br></br>
Tudo deve funcionar muito bem. Caso contrário, você terá HTML com o XHTML DOCTYPE adicionado incorretamente.
O DOCTYPE não altera a maneira como o documento é interpretado. Somente o tipo MIME faz .
Decisão do W3C sobre ignorar o DOCTYPE :
O GT HTML discutiu esse problema: a intenção era permitir que navegadores antigos (somente HTML) aceitassem documentos XHTML 1.0 seguindo as diretrizes e servindo-os como text / html. Portanto, documentos servidos como texto / html devem ser tratados como HTML e não como XHTML.
É uma armadilha muito comum, porque o W3C Validator ignora amplamente essa regra, mas os navegadores a seguem religiosamente. Leia
Noções básicas sobre HTML, XML e XHTML no blog do WebKit:
De fato, a grande maioria dos documentos supostamente XHTML na Internet é servida como text/html
. O que significa que eles não são XHTML, mas, na verdade, HTML inválido que está se saindo no tratamento de erros dos analisadores de HTML. Todos aqueles "XHTML 1.0 válido!" os links na web estão realmente dizendo "HTML inválido 4.01!".
Para testar se você possui XHTML real ou HTML inválido com o DOCTYPE de XHTML, coloque isso no seu documento:
<span style="color:green"><span style="color:red"/>
If it's red, it's HTML. Green is XHTML.
</span>
Ele valida e, em XHTML real, funciona perfeitamente (veja: 1 vs 2 ). Se você não consegue acreditar (ou não sabe como definir tipos MIME), abra sua página via proxy XHTML .
Outra maneira de verificar é visualizar a fonte no Firefox. Ele destacará barras em vermelho quando forem inválidas.
No HTML5 / XHTML5, isso não mudou, e a distinção é ainda mais clara, porque você nem tem mais DOCTYPE
. Content-Type
é o rei.
Para o registro, a especificação XHTML permite que qualquer elemento seja fechado automaticamente, transformando o XHTML em um aplicativo XML :
As tags de elemento vazio podem ser usadas para qualquer elemento que não tenha conteúdo , seja ele declarado ou não usando a palavra-chave EMPTY.
Também é mostrado explicitamente na especificação XHTML :
Elementos vazios devem quer ter uma tag final ou a tag de início deve terminar com />
. Por exemplo, <br/>
ou<hr></hr>