TL; DR:不幸的是,不,这是不可能的(而且永远不会)。
简短回答:
HTML评论并不是很多人认为的。 HTML是SGML的一种形式,其中注释由双破折号( - ... - )对分隔。
因此,在开括号(<! - ... - >)之后具有感叹号的一对尖括号内的任何一对双短划线是注释。该规范说它比我更好:http://www.w3.org/TR/html4/intro/sgmltut.html#h-3.2.4
这就是为什么像这样的评论(我们可能已经做过一次或另一次)是一个坏主意:
&lt ;! - ------------------ HEADER BEGINS HERE -------------------- - >
真相:我太懒了,不能告诉你上面的标签污染有多少评论,但它至少是10。
我不那么懒了:这个所谓的“评论”实际上包含10条评论,
任何评论之外的三个词(即刚刚坏的SGML),以及
未终止的评论的开头。这真是一团糟:
<! - 1 ---- 2 ---- ---- 3 4 ---- 5--
HEADER从这开始
--6 ---- 7 ---- 8 ---- 9 ---- 10-- - >
当然,由于每个浏览器选择如何解释规范的差异,它并不那么简单。
这是一篇很好的文章解释它:
http://weblog.200ok.com.au/2008/01/dashing-into-trouble-why-html-comments.html
答案很长:为什么我们弄错了
我们大多数用HTML长大的人(没有深入研究它的基础的SGML))已经开始相信字符串<! - 开始评论,字符串 - >结束评论。
实际上,<!和>在HTML文档中划分SGML声明,例如我们在页面顶部看到的DOCTYPE声明。在SGML声明中,注释由双短划线分隔。因此,HTML评论
<! - 这是评论 - >
我们大多数人都会相信这样解析<! - 这是评论 - >实际上解析如下:
<! - 这是评论 - >。除了注释之外,它是一个空的SGML声明。
因为HTML是SGML的一种形式,所以这种“声明中的注释”用作HTML注释。
出于兴趣,这里有一大块纯SGML,它显示注释在SGML中的作用:此属性列表定义包含每行的注释:
<!ATTLIST LINK
%ATTRS; - %coreattrs,%i18n,%events -
charset%Charset; #IMPLIED - 链接资源的字符编码 -
href%URI; #IMPLIED - 链接资源的URI -
hreflang%LanguageCode; #IMPLIED - 语言代码 -
type%ContentType; #IMPLIED - 咨询内容类型 -
rel%LinkTypes; #IMPLIED - 转发链接类型 -
rev%LinkTypes; #IMPLIED - 反向链接类型 -
media%MediaDesc; #IMPLIED - 用于在这些媒体上呈现 -
>