Recientemente descubrí que existe, posiblemente, una nueva forma de comentar en HTML5.
En lugar de los típicos <!-- -->
comentarios de varias líneas sobre los que he leído, pensé que noté que mi IDE hacía un <!div >
comentario regular . Así que lo probé y, para mi sorpresa, Chrome había comentado esa etiqueta. Es solamente comentado la etiqueta y no el contenido del div, así que tuve que comentar la más cerca <!/div>
para evitar el cierre de otros divs.
Probé otro y parece que generalmente poner un marcador de exclamación frente a la apertura de cualquier etiqueta, este símbolo <
, hace que esa etiqueta sea comentada.
¿Es esto realmente nuevo? ¿Es una mala práctica? En realidad es muy conveniente, pero ¿es práctico todavía (si no es nuevo)?
Editar detalles adicionales: aunque un error de sintaxis o interpretaciones erróneas de esta sintaxis en particular es una buena razón, ¿por qué Chrome realmente los presenta como comentarios completos?
El código está escrito como :
<!div displayed> some text here that is still displayed <!/div>
Y luego se representa como :
<!--div displayed--> some text here that is still displayed <!--/div-->
Respuestas:
No hay un nuevo estándar para comentarios en HTML5. La única sintaxis de comentario válida sigue siendo
<!-- -->
. De la sección 8.1.6 de W3C HTML5 :La
<!
sintaxis se origina en el marcado SGML DTD, que no forma parte de HTML5. En HTML5, está reservado para comentarios, secciones CDATA y la declaración DOCTYPE. Por lo tanto, si esta alternativa es una mala práctica depende de si considera que el uso de (o peor, la dependencia de) marcado obsoleto es una mala práctica.Validator.nu llama a lo que tiene un "comentario falso". - lo que significa que se trata como un comentario a pesar de que no es un comentario válido. Presumiblemente, esto es por compatibilidad con versiones anteriores de HTML5, que estaba basado en SGML y tenía declaraciones de marcado que tomaron la forma
<!FOO>
, por lo que no llamaría a esto nuevo. La razón por la que se tratan como comentarios es porque las declaraciones de marcado SGML fueron declaraciones especiales que no están destinadas a representarse, pero dado que no tienen sentido en HTML5 (con las excepciones anteriores), en lo que respecta al DOM de HTML5, no son más que comentarios .Los siguientes pasos dentro de la sección 8.2.4 conducen a esta conclusión, que Chrome parece estar siguiendo al pie de la letra:
8.2.4.1 Estado de datos :
8.2.4.8 Estado de etiqueta abierta :
8.2.4.45 Estado abierto de declaración de marcado :
Tenga en cuenta que dice cambiar al estado de inicio del comentario solo si la secuencia de caracteres encontrados es
<!--
, de lo contrario, es un comentario falso. Esto refleja lo que se indica en la sección 8.1.6 anterior.8.2.4.44 Estado de comentario falso :
En inglés simple, esto se convierte
<!div displayed>
en<!--div displayed-->
y<!/div>
en<!--/div-->
, exactamente como se describe en la pregunta.En una nota final, probablemente pueda esperar que otros analizadores compatibles con HTML5 se comporten igual que Chrome.
fuente
No creo que sea un buen hábito, ya que
<!
significa declaraciones de marcado como<!DOCTYPE
. Por lo tanto, cree que está comentado (bueno ... el navegador intentará interpretarlo).Incluso si no aparece, esta parece no ser la sintaxis correcta para comentar código HTML.
fuente