实际上,这不是一个模棱两可的 & 符号,因此使用您建议的 HTML 是完全有效的。当前接受的答案是不正确的(尽管我同意始终编码&符号以避免混淆是个好主意)。
HTML 规范定义了模棱两可的 & 符号如下:
不明确的 & 符号是 U+0026 与字符 (&) 后跟一个或多个字符,范围为 U+0030 数字零 (0) 到 U+0039 数字九 (9)、U+0061 拉丁小写字母 A 到U+007A 拉丁小写字母 Z 和 U+0041 拉丁大写字母 A 到 U+005A 拉丁大写字母 Z,后跟 U+003B 分号字符 (;),其中这些字符与命名字符引用部分。
但是,不以分号结尾的实体(如&
)在属性值中的处理方式不同:
如果字符引用被用作属性的一部分,并且匹配的最后一个字符不是 U+003B 分号字符 (;),并且下一个字符是 U+003D 等号字符 (=) 或在范围内U+0030 数字零 (0) 到 U+0039 数字九 (9)、U+0041 拉丁文大写字母 A 到 U+005A 拉丁文大写字母 Z 或 U+0061 拉丁文小写字母 A 到 U+007A 拉丁文小写字母 Z ,那么,由于历史原因,在 U+0026 与字符 (&) 之后匹配的所有字符都必须未使用,并且不返回任何内容。
但这在这里不适用,因为下一个字符是@
.
FWIW,我对此进行了彻底的研究,并在这里写下了我的发现:http: //mathiasbynens.be/notes/ambiguous-ampersands
我还创建了一个在线工具,您可以使用它来检查您的标记中是否存在不以分号结尾的不明确的 & 符号或字符引用,这两者都是无效的。(目前没有 HTML 验证器可以正确执行此操作。)
![http://i.stack.imgur.com/nyGPK.png](https://i.stack.imgur.com/nyGPK.png)