HTML中的单行注释

有没有一种方法可以在行的开始处仅使用转义序列在HTML中注释一行? 与其他语言中使用#//类似? 或者是<!-- ... -->在html中注释的唯一选项?

http://htmlhelp.com/reference/wilbur/misc/comment.html

由于HTML正式是SGML应用程序,HTML文档中使用的注释语法实际上是SGML注释语法。 不幸的是,这个语法起初有点不清楚。

SGML评论的定义基本如下:

注释声明<! ,然后是零个或多个注释,然后是>注释以“ -- ”开头和结尾,不包含任何“ -- ”。

这意味着以下都是合法的SGML评论:

  1. <!-- Hello -->
  2. <!-- Hello -- -- Hello-->
  3. <!---->
  4. <!------ Hello -->
  5. <!>

请注意,只有“ -- ”字符的“空”注释标签应始终有四个“ - ”字符的倍数为合法。 (是的, <!>也是一个法律意见 – 这是空的评论)。

并不是所有的HTMLparsing器都能正确使用。 例如,“ <!------> hello--> ”是一个法律意见,你可以用上面的规则来validation。 这是一个有两条评论的评论标签; 第一个是空的,第二个是“> hello”。 如果您在浏览器中尝试,则会发现文本显示在屏幕上。

有两个可能的原因:

  1. 浏览器看到“>”字符,并认为评论在那里结束。
  2. 浏览器看到“ --> ”文本,并认为评论在那里结束。

-- ”序列也有问题。 有些人习惯使用“ <!--------------> ”之类的东西作为分隔符。 不幸的是,在大多数情况下,“ - ”字符的数量不是四的倍数。 这意味着一个试图正确的浏览器会在这里错误地实际隐藏文档的其余部分。

出于这个原因,使用以下简单的规则来撰写有效和被接受的评论:

一个HTML注释以“ <!-- ”开始,以“ --> ”结尾,并且在注释的任何地方都不包含“ -- ”或“ > ”。

不, <!-- ... -->是HTML中唯一的注释语法。

不,您必须使用 – >closures注释。

TL; DR对于合适的浏览器,是的; 但没有合适的浏览器,所以没有。

根据HTML 4规范, <!------> hello-->是一个完全有效的注释。 然而,由于蹩脚的开发人员不知道也没有遵循标准(正如digitaldreamer指出的那样),所以我还没有find正确实现这一点的浏览器(即按照规范)。

您可以在w3c的网站上findHTML4评论的定义: http : //www.w3.org/TR/html4/intro/sgmltut.html#h-3.2.4

许多浏览器出错的另一件事是-- >-->一样closures注释。

让我们保持简单。 喜欢@digitaldreamer的回答,但它可能会让初学者感到困惑。 所以,我要试着简化它。

唯一的HTML注释是<!-- -->它可以用作单行注释或双注,这是真的取决于开发人员。

所以,HTML注释以<!--开始,以-->结尾。 这真的很简单。 即使注释格式是合法的,也不应使用任何其他格式,以避免任何兼容性问题。