según el título; ¿Es posible tener comentarios anidados en HTML válido? vea el ejemplo a continuación ...
<p>some text</p>
<!-- comment 1
<p>commented out html</p>
<!-- comment 2
// are nested html comment allowed?
end of comment 2 -->
<p>more commented out html</p>
end of comment 1 -->
<p>some more text</p>
Parece que no, ¿alguien sabe cómo puedo hacer que funcionen los comentarios anidados?
html
validation
comments
QAZ
fuente
fuente
Respuestas:
Cuando anide un comentario, reemplace "-" por "- -". Cuando desanide, invierta el procedimiento. No es el
<!--
que está prohibido sino el--
.Ejemplo:
fuente
--
con- -
para el comentario interno (anidado) .TL; DR : Desafortunadamente, no, no es posible (y nunca lo será).
Respuesta corta:
Un comentario HTML no es exactamente lo que muchos piensan. HTML es una forma de SGML, en la que los comentarios están delimitados por pares de guiones dobles ( --… --).
Por lo tanto, cualquier par de guiones dobles dentro de un par de corchetes angulares con un signo de exclamación después del corchete de apertura ( <! --⋯ -- >) es un comentario. La especificación lo dice mejor que yo: http://www.w3.org/TR/html4/intro/sgmltut.html#h-3.2.4
Es por eso que comentarios como este (que probablemente todos hemos hecho alguna vez) son una mala idea:
Verdad: Soy demasiado vago para decirles cuántos comentarios están representados por la contaminación de la etiqueta anterior, pero son al menos 10.
Por supuesto, no es tan simple, debido a las diferencias en cómo cada navegador elige interpretar la especificación.
Aquí hay un excelente artículo que lo explica:
http://weblog.200ok.com.au/2008/01/dashing-into-trouble-why-html-comments.html
Respuesta larga: por qué nos equivocamos
La mayoría de los que crecimos con HTML (sin profundizar en el SGML que lo subyace) hemos llegado a creer que la cadena <!--comienza un comentario y la cadena -->termina un comentario.
De hecho, <!y >delimite una declaración SGML dentro de su documento HTML, como la declaración DOCTYPE que todos hemos visto en la parte superior de nuestras páginas. Dentro de una declaración SGML, los comentarios están delimitados por guiones dobles. Por tanto, el comentario HTML
lo que la mayoría de nosotros creemos que es analizado sintácticamente como esto <!-- this is a comment -->es en realidad analiza así:
<!-- this is a comment -->. Es una declaración SGML que está vacía excepto por un comentario.
Debido a que HTML es una forma de SGML, este "comentario dentro de una declaración" funciona como un comentario HTML.
Por interés, aquí hay un fragmento de SGML puro que muestra los comentarios funcionando como se pretendía en SGML: esta definición de lista de atributos contiene un comentario en cada línea:
fuente
No se puede hacer.
-->
siempre terminará un comentario HTML existente.fuente
Si realmente está atascado con algún fragmento de HTML, renderizado previamente en alguna fuente incontrolable, que contiene comentarios, y necesita asegurarse de que no se renderice nada en su página, siempre puede envolverlo con una
script
etiqueta como la siguiente, Lo único es que no puede comentar lasscript
etiquetas de esta manera.Si necesita comentar las
script
etiquetas, puede usar untextarea
contenedor como en su lugar, por supuesto, al hacerlo de esta manera, no puede comentar lastextarea
etiquetas.fuente
/* */
Usar
template
etiqueta. La forma más rápida de bloquear todos los comentarios y otros html para que no aparezcan.fuente
<template>
elemento no se puede agregar en cualquier lugar. Su elemento padre tiene que ser el<body>
elemento o unos pocos otros seleccionados .Algunos editores tienen comandos para comentar / descomentar que pueden manejar automáticamente los comentarios existentes en un bloque de texto. Visual Studio, por ejemplo, lo hace cuando presiona Ctrl + KC y Ctrl + KU.
fuente
Un complemento de VS que falsifica comentarios anidados al convertir automáticamente
<!--...-->
para<!~~...~~>
luego comentar toda la sección. Te permite activarlo y desactivarlo.comentarios-anidados
fuente
Creo que no está permitido, pero hasta donde yo sé, funciona en la mayoría de los principales navegadores excepto en Firefox.
fuente
intenta usar esto
este es el comienzo del comentario
-->
fin de los comentarios.fuente
Prueba esto
fuente
<comment>
palabra clave en HTML