關鍵字: css selector
CSS樣式定義多了,常常出現顯示效果與預期不一致的情況。其中很大一部分原因在于起作用的樣式。
1.多個選擇器可能會選擇同一個元素,有3個規則,從上到下重要性降低:
!important的用戶樣式
!important的作者樣式
作者樣式
用戶樣式
瀏覽器定義的樣式
2.
CSS規范為不同類型的選擇器定義了特殊性權重,特殊性權重越高,樣式會被優先應用。
權重設定如下:
html選擇器,權重為1;
類選擇器,權重為10;
id選擇器,權重為100;
這里還有一種情況:在html標簽中直接使用style屬性,這里的style屬性的權重為1000;
即如下情況:
#x34y {color:red}
<. p id=x34y style="color:green"> 優先選擇style=""設定的樣式。
例子:
h1{color:blue} 權重為1
p em{color:yellow} 權重為2
.warning{color:red} 權重為10
p.note em.dark{color:grag} 權重為22
#main{color:black} 權重為100 這里還有一種情況:
權重一樣時如何處理?
3.CSS樣式的層疊原則——誰離我近,誰說了算。
當權重一樣時,會采用“層疊原則” 后定義的會被應用。
如:p{color:yellow}
p{color:red}
作用到這里 <. p >我的什么顏色呢?< /p>
結果會是red的。
4.CSS樣式的特殊標記——誰有特權,誰說了算。
如果有人看不順眼,非得要自己說了算,那可以搞點特權,如下即可
p {color:blue !important;}
加上!important;可將自己權重設為最高。
http://zjq-blog.javaeye.com/blog/159469