所以,我在 Magento 所见即所得编辑器(所有事物)中闲逛时注意到 <!>
呈现为 <!---->
在生成的 HTML 中。似乎在 <! >
中包含任何字符串呈现正常 <!-- [string] -->
评论。我只在 Chrome 中对此进行了测试,但这种行为对我来说似乎有点奇怪。我看过 W3C spec on comments ,以及 this MDN 上的小文档。不过,他们都没有给我一个我可以真正理解的答案; 注释开分隔符 ("--") 的意义是什么?如果省略它,<!>
会怎样?似乎总能得到正确的评论?也许,我的浏览器只是摆脱了无效标记?为什么不是 <!>
只是呈现为文本?我知道这并不重要,甚至与任何事情都无关,但我只是好奇!
最佳答案
在形式上,直到 HTML 4.01 的 HTML 注释语法都很复杂,遵循 SGML 标准,但实际上 HTML 从未作为 SGML 应用程序实现。一个旧页面 HTML comments WDG 简要介绍了 HTML 注释语法并对其进行了一些实用说明。实际上,评论应该以 <!--
开头。并以 -->
结尾.这在 XHTML 和 HTML5 中是正式的。
但是浏览器已经更自由地实现了注释语法,所以你可以从 <!
开始。并以 >
结尾(尽管这不是官方的并且会导致来自 HTML5 验证器的错误消息)。这已在 HTML5 解析规则中描述和规定为必需的浏览器行为,请参阅第 8.2.4.45 节 Markup declaration open state ,它定义了如何进入“虚假评论状态”。
因此,<! foo >
实际上有效(并在 DOM 中创建一个注释节点),但在 XHTML 和 HTML5 中是被禁止的。
关于HTML 注释行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25067709/