"span"标签中的多个"样式"属性:应该发生什么?

Mar*_*ark 20 html

考虑以下具有两个style属性的HTML片段:

<span style="color:blue" style="font-style:italic">Test</span>
Run Code Online (Sandbox Code Playgroud)

在Opera 12.16和Chrome 40中,它显示为蓝色非斜体文本,而Internet Explorer 9显示蓝色斜体文本.标准所说的应该出现什么?

Eej*_*eji 40

在单个声明中使用分号分隔规则:

<span style="color:blue;font-style:italic">Test</span>

  • 这可能无法回答OP的问题,但我发现在同一个问答页面上真的很有用 (13认同)
  • 我知道我应该如何做到这一点; 我想知道的是,如果我不这样做会发生什么(或者在我的具体情况下,如果自动HTML生成器混乱会发生什么). (5认同)
  • 好吧,它帮助了我!谢谢! (2认同)

小智 27

在HTML,SGML和XML中,(1)属性不能重复,只应在元素中定义一次.

你的榜样如此:

<span style="color:blue" style="font-style:italic">Test</span>
Run Code Online (Sandbox Code Playgroud)

不符合标准的HTML标准,并会导致不确定的行为,这可以解释为什么不同的浏览器不同的是它的渲染.


由于没有定义的方法来解释这一点,浏览器可以解释它然后他们想要并合并它们,或者根据需要忽略它们.

(1):我能找到的每篇文章都指出属性是"键/值"对或"属性 - 值"对,这在很大程度上意味着键必须是唯一的.我能找到的最佳来源是:

属性名称(此示例中的id和status)受到与XML中其他名称相同的限制; 但是,它们不需要在整个DTD中是唯一的,而是仅在给定元素的属性列表中.(强调我的.)