HTML 4规定了需要转义的特殊字符,这里有详细说明:
以下四个实体引用由于经常用于转义特殊字符,因此需要特别提及:
- "<"代表 < 符号。
- ">"代表 > 符号。
- "&"代表 & 符号。
- ""代表 " 符号。
如果作者希望在文本中使用字符“<”,应使用“<”(ASCII十进制60),以避免可能会将其误认为是标签开始定界符(起始标记开放定界符)。同样,作者应该在文本中使用“>”(ASCII十进制62)而不是“>”,以避免旧的用户代理错误地将其视为标签结束定界符(标记关闭定界符)出现在引号包含的属性值中时。
作者应该使用“&”(ASCII十进制38)而不是“&”以避免与字符引用(实体引用开放定界符)的开头混淆。在CDATA属性值中允许使用字符引用,因此作者还应在属性值中使用“&”。
一些作者使用字符实体引用“"”来编码双引号(")的实例,因为该字符可能用于定界属性值。
我惊讶地发现在HTML 5中找不到类似的内容。通过grep的帮助,我唯一找到的非XML提及是关于已废弃的XMP元素的旁白:
改用pre和code标签,并将“<” 和 “&”字符转义为“<”和“&”。
有人可以指出官方的资料吗?
"
和单引号属性中的'
(显然是含糊的),以及文本外的 '<' (有时只有含糊,但仍会导致验证错误)都需要进行转义。<b>2 > 1</b>
是有效的HTML5格式。&
在含糊时也是一个错误。 - Ry-<p>
可以明确地关闭前一个段落中所有打开的<em>
和<strong>
标签等)。为什么会有这种遗漏,而花时间去“除非元素的第一件事是注释”。感觉像是一个重大疏忽。 - ezequiel-garzon