由于我的Emacs设置中的标头配置,我无法使用相同的缩进自动插入HTML注释的结束标记(它读取文件名,其长度不同)。所以我想知道,例如,我有以下标题:
<!-- foobar.html
<!-- Author: Myself
<!-- --------------- -->
我知道这不是一个优雅的解决方案。如果第1行和第2行的注释以-->
结束,那将是理想的。但我只在3号线上这样做。
所以我想知道这是否会被接受&#34;通过浏览器作为有效的HTML语法?
答案 0 :(得分:2)
注释必须以四个字符序列U + 003C LESS-THAN开头 SIGN,U + 0021 EXCLAMATION MARK,U + 002D HYPHEN-MINUS,U + 002D HYPHEN-MINUS(
<!--
)。按照此顺序,评论可能有 text,但附加限制是文本不得 从单个&#34;&gt;&#34;开始(U + 003E)字符,也不以U + 002D开头 HYPHEN-MINUS字符( - )后跟&#34;&gt;&#34; (U + 003E)字符,也不是 包含两个连续的U + 002D HYPHEN-MINUS字符(--
),也没有结束 使用U + 002D HYPHEN-MINUS字符( - )。最后,评论必须是 以三个字符序列U + 002D HYPHEN-MINUS,U + 002D结束 HYPHEN-MINUS,U + 003E GREATER-THAN SIGN(-->
)。
由于您在评论中使用--
,因此您的代码无效。
但是,它应该像你想要的那样解析:
-
将切换为comment end dash state -
将切换为comment end state 但是你没有关闭评论。因此,
Parse error。附加两个&#34; - &#34; (U + 002D)个字符和current input character到评论标记的数据。切换到 comment state
因此,将会有一个包含
的评论(不是3) foobar.html
<!-- Author: Myself
<!-- ---------------
答案 1 :(得分:0)
它不是有效的HTML语法(在当前规则下,除了在开头和结尾处都禁止使用连续连字符。)
现代浏览器会错误地从中恢复。
某些较旧的浏览器(早于HTML 5中的常见错误处理规则)不会。