2011-02-18 100 views
8

我在這裏閱讀了一篇關於這個主題的體面文章:http://www.plus2net.com/html_tutorial/css-types.php 它在谷歌搜索詞CSS樣式表優先級中排名最高。 但我認爲該網站誤導你並且不完整!有人可以證實我的懷疑嗎?不同級別的CSS和相互之間的優先級

1)用戶定義的風格是第二低的優先級。爲了用它覆蓋其他樣式,您需要使用!important將其移動到最高。 2)沒有提到內<鏈路>

<鏈路>與@import和@import的相對優先級的更精確的順序將是(1勝超過2等):

  1. 用戶定義的(瀏覽器首選項重要! - [不是谷歌瀏覽器!])
  2. 內嵌樣式表(HTML節點上的樣式屬性)
  3. 內部樣式表(<風格>在<頭>)
  4. 外部樣式表(@import)
  5. 外部樣式表(<鏈路>)
  6. 外部樣式表(內側<鏈路>)
  7. 用戶定義的@import - (瀏覽器首選項 - [不是谷歌Chrome瀏覽器])
  8. 瀏覽器的默認 - !(隨瀏覽器)

邁克爾·鮑爾斯Pro CSS & HTML Design Patterns是這件T的良好來源OO。但它沒有提到內聯。

還有什麼遺漏嗎? PS:我推斷!重要的是從2-8失蹤。所以用戶定義出現兩次。一旦重要,第二次沒有它。所以用戶定義本質上是次低的。 !重要的東西自然可以應用於任何層面。

+0

嗯,我不確定。更重要的是,「重要」可以在層次結構中的任何級別上充當王牌。至於「缺什麼」,可能是對選擇者特異性的討論。這引起了我幾次。 – Sapph 2011-02-18 08:33:08

+0

@Sapph好的。但用戶定義的是第二低的權利? (不是最高) – JGFMK 2011-02-18 08:59:28

回答

8

而不是從最重要和最不重要的角度考慮它,可以把它看作級聯順序。所有樣式都適用,但最後應用的樣式是您看到的樣式。樣式以下順序施加:

  1. 瀏覽器的默認
  2. 外部樣式表(link@import
  3. 內部樣式表
  4. 內嵌式

在第一個中的任何一個三種風格從最具體到最具體(然後從上到下如果最具體無法確定)應用。因此,標籤選擇的樣式將在類選擇的樣式之前應用,因此如果他們不同意應該應用哪種樣式,則類選定的樣式將會勝出。沒有關於link還是@import應該首先應用的規則,所以它們被混合在一起,並且適用最不特定的規則。

!important使一個不太具體的樣式在更具體的樣式後應用,並且外部樣式表樣式應用於內部樣式或內聯樣式之後。儘管如此,我建議不要使用!important,因爲它可能會導致一些非常令人困惑的結果。