HTML符号魔法

4

刚刚意识到像这样的HTML符号:

&

将被浏览器识别,无需其他操作

;

我因此遇到了问题:

&current

被替换为

¤t 

你能解释一下,为什么吗?


你在哪里看到 &curren 被替换为 ¤[无法重现] 也许你实际上输入的是 ¤t(渲染为 ¤t)或 &current;(渲染为 ¤t;)。 - Matt Ball
1
@Matt - 不,这是现代浏览器中标准化的行为。请参见我的回答。 - Alohci
3个回答

3

因为HTML中的任何&都应该被编码为&。所以任何单独的&都会被解释为HTML实体的开始,并且浏览器会尝试进行错误纠正(如果字符超出其允许的序列,例如空格字符,则解析器可能会尝试解释实体)。

无论何时在HTML中使用&,请将其编码为&


2

1

浏览器尽力在可能的情况下理解垃圾代码。并没有规定说他们应该这样做,或者必须这样做,甚至认为这是一个好主意。但如果某些浏览器确实这样做了,那么它们就这样做。


1
有一个规则。它在HTML5规范中。 - Alohci
每个现存的浏览器都完全支持它吗? - Ernest Friedman-Hill

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接