HTML 注释行为

标签 html comments

所以,我在 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/

相关文章:

C++,在多行代码中注释

javascript - 写了两个 JavaScript 函数,但其​​中一个似乎让我的网站崩溃

html - Angular 2 意外的结束标签

java - 代码注释风格不同

python - 有没有办法在多行代码中添加注释?

svg - 如何在 SVG 中进行 block 注释

jquery - 包含列表(家谱)的可滚动 div

html - 如何修复不可见边距参数?

javascript - 获取 window.getSelection().anchorNode 的属性

python - 如何在 PyCharm 中格式化多行 TODO 注释?