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