data- *属性可以包含HTML标签吗?

时间:2011-01-15 11:21:59

标签: html

即。 <img src="world.jpg" data-title="Hello World!<br/>What gives?"/>

4 个答案:

答案 0 :(得分:26)

据我了解指南,它基本上是有效的,但最好使用HTML实体。

来自HTML 4 reference

  

你也应该逃避&amp;在属性值内,因为在cdata属性值中允许实体引用。另外,你应该逃避&gt;作为&gt;避免在引用的属性值中遇到此字符时,旧用户代理错误地将其视为标记结尾的问题。

来自HTML 5 reference:

  

除非另有说明,否则HTML元素的属性可能包含任何字符串值,包括空字符串。除非明确说明,否则对此类属性中可指定的文本没有限制。

正如@tdammers所说,最好的做法是逃避这些角色(引用W3C参考)

  • &amp;代表&标志。
  • &lt;代表<标志。
  • &gt;代表>标志。
  • &quot;代表"标记。

如果它们要用作HTML,则从它们的实体值解码它们。

答案 1 :(得分:10)

假设你以text / html的形式提供它,那么它是有效的。

请注意,不仅可以在属性中包含标记,而且iframe元素上的HTML5 srcdoc属性也会鼓励它。 HTML5草案说:

  

在HTML语法中,作者只需要   记得使用U + 0022 QUOTATION MARK   包装属性的字符(“)   内容然后逃避所有U + 0022   报价标记(“)和U + 0026   AMPERSAND(&amp;)字符,......

请注意,当使用XML内容类型(例如application / xhtml + xml)时,它无效,甚至格式正确。

答案 2 :(得分:6)

我会说是的,因为它仍然是有效的HTML5。较旧的浏览器(哪些?)可能无法正确解析。

当前HTML5草案的 3.2.4.1属性部分说明了这一点:

  

除非另有说明,否则HTML元素的属性可能包含任何字符串值,包括空字符串。 除非明确说明,否则对此类属性中指定的文本没有限制。

属性中的HTML标记也会在http://html5.validator.nu

处验证

答案 3 :(得分:-3)

没有。那将是无效的 - HTML不允许&lt;或者&gt;内部属性。

<img src="world.jpg" data-title="Hello World!&lt;br/&gt;What gives?"/>有效,但会显示&lt; br /&gt;从字面上看,不是换行符。