Recentemente, descobri que há, possivelmente, uma nova maneira de comentar em HTML5.
Em vez dos comentários típicos de <!-- -->
várias linhas sobre os quais eu li, pensei ter notado que meu IDE fazia <!div >
comentários regulares . Então eu testei e, para minha surpresa, o Chrome havia comentado essa tag. Ele apenas comentou a tag e não o conteúdo da div, então tive que comentar mais perto <!/div>
para evitar o fechamento de outras divs.
Testei outro e parece que, geralmente, colocar um marcador de exclamação na frente da abertura de qualquer tag, esse símbolo <
, faz com que essa tag seja comentada.
Isso é realmente novo? É uma má prática? Na verdade, é muito conveniente, mas ainda é prático (se não for novo)?
Editar detalhes extras: Embora um erro de sintaxe ou erros de interpretação desta sintaxe particular é uma boa razão, como é que o Chrome realmente torna-los como comentários cheios?
O código está escrito como :
<!div displayed> some text here that is still displayed <!/div>
E então é renderizado como :
<!--div displayed--> some text here that is still displayed <!--/div-->
Respostas:
Não há novo padrão para comentários em HTML5. A única sintaxe de comentário válida ainda é
<!-- -->
. Na seção 8.1.6 do W3C HTML5 :A
<!
sintaxe é originada na marcação SGML DTD, que não faz parte do HTML5. No HTML5, é reservado para comentários, seções CDATA e a declaração DOCTYPE. Portanto, se essa alternativa é uma prática ruim, depende se você considera o uso (ou pior, a dependência) de marcação obsoleta como uma prática ruim.O Validator.nu chama o que você tem de um "comentário falso". - o que significa que é tratado como um comentário, mesmo que não seja um comentário válido. Presumivelmente, isso é para compatibilidade com versões anteriores ao HTML5 pré-baseado em SGML e tinha declarações de marcação que assumiam o formulário
<!FOO>
, então eu não chamaria isso de novo. O motivo pelo qual são tratados como comentários é porque as declarações de marcação SGML eram declarações especiais que não deveriam ser renderizadas, mas como não fazem sentido no HTML5 (com as exceções acima), no que diz respeito ao DOM do HTML5, nada mais são que comentários .As etapas a seguir na seção 8.2.4 levam a essa conclusão, que o Chrome parece estar seguindo à risca:
8.2.4.1 Estado dos dados :
8.2.4.8 Estado de abertura da etiqueta :
8.2.4.45 Estado aberto da declaração de marcação :
Observe que ele diz para mudar para o estado inicial do comentário apenas se a sequência de caracteres encontrada for
<!--
, caso contrário, é um comentário falso. Isso reflete o que é afirmado na seção 8.1.6 acima.8.2.4.44 Estado de comentário falso :
Na planície Inglês, isso se transforma
<!div displayed>
em<!--div displayed-->
e<!/div>
em<!--/div-->
, exatamente como descrito na pergunta.Em uma nota final, você provavelmente pode esperar que outros analisadores compatíveis com HTML5 se comportem da mesma forma que o Chrome.
fonte
Eu não acho que esse seja um bom hábito, já que
<!
significa declarações de marcação como<!DOCTYPE
. Assim, você acha que está comentado (bem ... o navegador tentará interpretá-lo).Mesmo que não apareça, essa parece não ser a sintaxe correta para comentar o código HTML.
fonte