&和&和有什么区别?在HTML5中?

Bhi*_*bim 2 html mailto share subject href

&和之间有什么区别&

就像下面的代码一样,两者的工作方式是否相同?

<a href="mailto:EMAIL?subject=BLABLABLA&body=http://URL, SHORT DESCRIPTION"></a>
<a href="mailto:EMAIL?subject=BLABLABLA&amp;body=http://URL, SHORT DESCRIPTION"></a>
Run Code Online (Sandbox Code Playgroud)

Exp*_*lls 5

&amp;是 的 html 特殊字符&,作为 html 特殊字符的信号具有特殊意义。有效的事实href="&"是大多数浏览器提供的便利,它们足以正确处理无效的 HTML,但在技术上是不正确的。你要使用&amp;是因为实体会被转换成&HTML 代码。

考虑您是否使用了"代替&. 这将结束该href值并使 HTML 不正确,对吗?您想使用&quot;.

参见:http : //www.w3.org/html/wg/drafts/html/master/single-page.html#syntax-errors “涉及脆弱语法结构的错误”——事实上它指出使用&是可以的,如果它后面没有一个命名的字符引用,但有很多;理想情况下,您或多或少会自动转义属性输入。


Chu*_*uck 5

在HTML5中,它们在该示例中是等效的。传统上,在HTML中,这只是&amp;正确的-但对于许多事情,Web开发人员都会无理地忽略了这一不便的规则,并在各处乱写了“&”号。就其本身而言,浏览器只是“做了正确的事情”,并将这些“&”符号解释为“&”符号。HTML5对这种行为进行了标准化,因此现在&允许它,只要之后发生的事情看起来不像是实体引用。

  • @ExplosionPills:它实际上是以一种向后的方式进行的。传统 HTML 仅将“&amp;”指定为实体标记,而 HTML5 则明确禁止仅使用“不明确的 &amp; 符号”。它位于规范的“HTML 语法”部分。 (2认同)
  • @ExplosionPills - *行为*(而不是允许或禁止的行为)在这里:http://www.w3.org/html/wg/drafts/html/master/syntax.html#consume-a-character-参考 (2认同)