700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > html注释不能交叉嵌套 嵌套的HTML注释是否可行?

html注释不能交叉嵌套 嵌套的HTML注释是否可行?

时间:2021-06-07 09:54:17

相关推荐

html注释不能交叉嵌套 嵌套的HTML注释是否可行?

TL; DR:不幸的是,不,这是不可能的(而且永远不会)。

简短回答:

HTML评论并不是很多人认为的。 HTML是SGML的一种形式,其中注释由双破折号( - ... - )对分隔。

因此,在开括号(<! - ... - >)之后具有感叹号的一对尖括号内的任何一对双短划线是注释。该规范说它比我更好:http:///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-- - >

当然,由于每个浏览器选择如何解释规范的差异,它并不那么简单。

这是一篇很好的文章解释它:

.au//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 - 用于在这些媒体上呈现 -

>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。