TL;DR:不幸的是,不,这是不可能的(而且永远不会)。
简短的回答:
HTML 注释并不像许多人认为的那样。HTML 是 SGML 的一种形式,其中注释由成对的双破折号 ( --… <kbd>--) 分隔。
<! --因此,一对尖括号内的任何一对双破折号在左括号 ( ⋯ )后带有一个感叹号-- >是注释。规范说得比我好:http ://www.w3.org/TR/html4/intro/sgmltut.html#h-3.2.4
这就是为什么像这样的评论(我们都可能曾经做过一次)是一个坏主意:
<!-- ------------------ 标题从这里开始 -------------------- -->
真相:我懒得告诉你上面的标签污染代表了多少评论,但至少有10条。
我变得不那么懒惰了:这个所谓的“评论”实际上由 10 条评论、任何评论之外的三个词(即,只是糟糕的 SGML)和未终止的评论的开头组成。真是一团糟:
<!--1 ----2 ----3 ----4 ----5--
标题从这里开始
--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 注释
<!-- 这是一条评论 -->
我们大多数人会认为是这样解析<!-- this is a comment -->的,实际上是这样解析的:
<!-- this is a comment -->. 它是一个除注释外为空的 SGML 声明。
因为 HTML 是 SGML 的一种形式,所以这个“comment-within-a-declaration”起到 HTML 注释的作用。
出于兴趣,这里有一块纯 SGML,它显示了在 SGML 中的预期功能:这个属性列表定义在每一行都包含一个注释:
<!ATTLIST 链接
%attrs; -- %coreattrs, %i18n, %events --
字符集 %字符集;#IMPLIED -- 链接资源的字符编码 --
参考 %URI;#IMPLIED -- 链接资源的 URI --
hreflang %语言代码;#IMPLIED -- 语言代码 --
类型%内容类型;#IMPLIED -- 咨询内容类型 --
相对 %LinkTypes; #IMPLIED -- 前向链接类型 --
转 %LinkTypes; #IMPLIED -- 反向链接类型 --
媒体 %MediaDesc; #IMPLIED -- 用于在这些媒体上渲染 --
>