2009-09-07 54 views
0

如果我直接在CSS类和元素中定义CSS属性,哪个值最终被使用?CSS属性冲突,应该赢?

让我们使用宽度为我们的例子

<html> 
<head> 
<style type="text/css"> 
    .a { 
    width: 100px; 
    } 
</style> 
</head> 
<body> 
<div class="a" style="width: 200px;"> </div> 
</body> 
</html> 

应div的宽度是什么浏览器? (根据标准,而不是在实践中发生的)

回答

6

级联(因此它的名称)表示它是元素的首选项超过参考文件样式的文件内样式。

1

元素的风格将被使用,因为它具有较高的特异性。

特异性规则:

  • 元件style:1000点
  • ID:100分
  • 类:10分
  • 元素名称(表,DIV等):1点

示例:

  • .class是10分
  • table.class是11分
  • div#myId.class是111点
  • div是1点

最点的声明将被使用。但是,您可以使用!important覆盖任何级别的样式。

1

它应该是200px。定义的规则here表示,如果“如果声明来自'样式'属性而不是具有选择器的规则”,那么这是最高优先级/特定性。

1

元素上的定义值应该以......

1

关于这个问题,你可以看看规范;特别是部分6.4.3 Calculating a selector's specificity。部分6.4.1 Cascading order也可能是有用的。

的“style”属性要声明的最后一个,也是最具体的;所以这是应该使用的。

+0

它的使用,因为它是最具体的,而不是因为它是最后一个宣布;知道哪一个是“最后一个”只会在其他方面相同的特定规则之间有意义。 – ChrisW 2009-09-07 20:13:24