CSS的優先級特性Specificity

作者:Htmldog 來源:w3cpro.cn 時間:2008-03-09 標簽: CSS基礎教程
如果同個元素有兩個或以上沖突的CSS規則,瀏覽器有一些基本的規則來決定哪一個非常特殊而勝出。
  它可能不像其它那么重要,大部分案例你不需要擔心沖突,但大型而且復雜的CSS文件,或有很多CSS文件組成的,可能產生沖突。
  選擇器一樣的情況下后面的會覆蓋前面的屬性。比如:

p { color: red; }
p { color: blue; }

  p元素的元素將是藍色,因為遵循后面的規則。
  然而,你不可能經常用相同的選擇器沖突達到目的,當你使用嵌套選擇器,合理的沖突來了。比如:

div p { color: red; }
p { color: blue; }

  也許你看起來p元素在div元素里面的顏色是藍色,就像后面p元素的規則,但是第一個選擇器的特性卻是紅色。基本上,一個選擇器越多特性,樣式沖突的時候將顯示它的樣式。
  一組嵌套選擇器的實際特性可以計算出來。基本的,使用ID選擇器的值是100,使用class選擇器的值是10,每個html選擇器的值是1。它們加起來就可以計算出特性的值。

  p的特性是1(一個html選擇器)
  div p的特性是2(兩個html選擇器)
  .tree的特性是10(1個class選擇器)
  div p.tree的特性是1+1+10=12,(兩個html選擇器,一個class選擇器)
  #baobab的特性是100(1個ID選擇器)
  body #content .alternative p的特性是112(兩個html選擇器,一個ID選擇器,一個類選擇器)

  按照上面的規則,div p.tree的特性比div p高,body #content .alternative p又比它們兩個都高。

推薦設計

最新文章