即。 <img src="world.jpg" data-title="Hello World!<br/>What gives?"/>
答案 0 :(得分:26)
据我了解指南,它基本上是有效的,但最好使用HTML实体。
你也应该逃避&amp;在属性值内,因为在cdata属性值中允许实体引用。另外,你应该逃避&gt;作为&gt;避免在引用的属性值中遇到此字符时,旧用户代理错误地将其视为标记结尾的问题。
除非另有说明,否则HTML元素的属性可能包含任何字符串值,包括空字符串。除非明确说明,否则对此类属性中可指定的文本没有限制。
正如@tdammers所说,最好的做法是逃避这些角色(引用W3C参考)
&
代表&
标志。<
代表<
标志。>
代表>
标志。"
代表"
标记。如果它们要用作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!<br/>What gives?"/>
有效,但会显示&lt; br /&gt;从字面上看,不是换行符。