【发布时间】:2011-02-08 02:05:18
【问题描述】:
有没有办法在 HTML 中只在行首使用转义序列来注释掉一行?
类似于在其他语言中使用# 或//?或者<!-- ... -->是html评论的唯一选择?
【问题讨论】:
-
TL;DR: No. 仅限
<!-- -->。
有没有办法在 HTML 中只在行首使用转义序列来注释掉一行?
类似于在其他语言中使用# 或//?或者<!-- ... -->是html评论的唯一选择?
【问题讨论】:
<!-- -->。
TL;DR 对于符合标准的浏览器,是的;但是没有符合标准的浏览器,所以没有。
根据 HTML 4 规范,<!------> hello--> 是完全有效的注释。但是,由于开发人员不了解或遵循标准(如 digitaldreamer 指出的那样),我还没有找到正确实现此功能的浏览器(即按照规范)。
您可以在 w3c 的网站上找到 HTML4 注释的定义: http://www.w3.org/TR/html4/intro/sgmltut.html#h-3.2.4
许多浏览器出错的另一件事是-- > 会像--> 一样关闭评论。
【讨论】:
让我们保持简单。喜欢@digitaldreamer 的回答,但它可能会让初学者感到困惑。所以,我将尝试简化它。
唯一的 HTML 注释是<!-- --> 它可以用作单行注释或双行注释,这完全取决于开发人员。
因此,HTML 注释以 <!-- 开头并以 --> 结尾。真的就是这么简单。您不应该使用任何其他格式,以避免任何兼容性问题,即使评论格式是否合法。
【讨论】:
来自http://htmlhelp.com/reference/wilbur/misc/comment.html
由于 HTML 正式成为 SGML 应用程序,使用的注释语法 在 HTML 文档中实际上是 SGML 注释语法。不幸的是,这 一开始语法有点不清楚。
SGML 注释的定义 基本上如下:
评论声明开始 使用这 表示以下都是合法的 SGML cmets:<!,然后是 零个或多个 cmets,后跟>。一个评论 开始和结束于 “--”,而不是 包含任何出现的 “--”。请注意,一个“空”的注释标签,带有 只是“
<!-- Hello --><!-- Hello -- -- Hello--><!----><!------ Hello --><!>--”字符, 应该总是四的倍数 "-" 字符 合法的。 (是的,<!>也是合法的 评论 - 这是空评论)。并非所有的 HTML 解析器都能做到这一点。 例如,“
<!------> hello-->”是合法的 评论,你可以用 上面的规则。这是一个评论标签 两个厘米;第一个是空的 第二个包含“>你好”。 如果您在浏览器中尝试,您将 发现文字显示在 屏幕。有两种可能 原因:
还有 “
- 该 浏览器看到“>”字符和 认为评论到此为止。
- 该 浏览器看到“
-->” 发短信并认为评论结束 那里。--”的问题 顺序。有些人有这样的习惯 使用类似的东西 “<!-------------->” 作为其源中的分隔符。 不幸的是,在大多数情况下, “-”字符数 不是四的倍数。这意味着 尝试的浏览器 做对了就会得到它 错这里并实际隐藏 文档的其余部分。对于 这个原因,使用以下简单 组成有效和接受的规则 厘米:
一个 HTML 评论以 “<!--”,以 "-->" 并没有 包含“--”或 “>” 评论。
【讨论】:
<!> 是一个有效的评论。不过,为了兼容性,我会避免这样的事情
<!-- 开头,以 --> 结尾,并且文本不能以 > 或 -> 开头,不能包含 -- 并且不能以-。但是有很多规则可以用于解析无效的 cmets 浏览器可以遵守。
不,<!-- ... --> 是 HTML 中唯一的注释语法。
【讨论】:
不,您必须使用 --> 关闭评论。
【讨论】: