到底誰(shuí)說(shuō)了算?
CSS樣式使用優(yōu)先級(jí)判斷
2007年5月27日寫的,現(xiàn)在轉(zhuǎn)到這里來(lái)。
修正前,再次謝謝hax的指點(diǎn)。最正確的說(shuō)法:http://www.w3.org/TR/CSS21/cascade.html#specificity 參見(jiàn)這里的相關(guān)內(nèi)容,一下只是我個(gè)人偷懶的理解方式,只解決常規(guī)情況下的絕大部分問(wèn)題。不是預(yù)期使用的樣式,如何判斷那個(gè)樣式會(huì)最終起作用呢?到底誰(shuí)說(shuō)了算,可以依據(jù)下面幾個(gè)原則:
CSS樣式定義多了,常常出現(xiàn)顯示效果與預(yù)期不一致的情況。其中很大一部分原因在于起作用的樣式。
1。多個(gè)選擇器可能會(huì)選擇同一個(gè)元素,有3個(gè)規(guī)則,從上到下重要性降低:
!important的用戶樣式
!important的作者樣式
作者樣式
用戶樣式
瀏覽器定義的樣式
2。CSS樣式的特殊性權(quán)重——誰(shuí)有分量,誰(shuí)說(shuō)了算。
CSS規(guī)范為不同類型的選擇器定義了特殊性權(quán)重,特殊性權(quán)重越高,樣式會(huì)被優(yōu)先應(yīng)用。
權(quán)重設(shè)定如下:
html選擇器,權(quán)重為1;
類選擇器,權(quán)重為10;
id選擇器,權(quán)重為100;
這里還有一種情況:在html標(biāo)簽中直接使用style屬性,這里的style屬性的權(quán)重為1000;
即如下情況:
#x34y {color:red}
<. p id=x34y > 優(yōu)先選擇style=""設(shè)定的樣式。
其他類型的,大家看看例子就明白了。
例子:
h1{color:blue} 權(quán)重為1
p em{color:yellow} 權(quán)重為2
.warning{color:red} 權(quán)重為10
p.note em.dark{color:grag} 權(quán)重為22
#main{color:black} 權(quán)重為100 這里還有一種情況:
權(quán)重一樣時(shí)如何處理?權(quán)重一樣時(shí)就另說(shuō)了。看看下面的就明白了。
3。CSS樣式的層疊原則——誰(shuí)離我近,誰(shuí)說(shuō)了算。
當(dāng)權(quán)重一樣時(shí),會(huì)采用“層疊原則” 后定義的會(huì)被應(yīng)用。
如:p{color:yellow}
p{color:red}
作用到這里 <. p >我的什么顏色呢?< /p>
結(jié)果會(huì)是red的。
4。CSS樣式的特殊標(biāo)記——誰(shuí)有特權(quán),誰(shuí)說(shuō)了算。
如果有人看不順眼,非得要自己說(shuō)了算,那可以搞點(diǎn)特權(quán),如下即可
p {color:blue !important;}
加上!important;可將自己權(quán)重設(shè)為最高。
如果你要問(wèn)兩個(gè)!important;設(shè)定的樣式,那個(gè)樣式說(shuō)了算,我說(shuō)你為什么不自己試試看看呢!
好了,誰(shuí)說(shuō)了算的問(wèn)題就到這里了。
平凡而簡(jiǎn)單的人一個(gè),無(wú)權(quán)無(wú)勢(shì)也無(wú)牽無(wú)掛。一路廝殺,只進(jìn)不退,死而后已,豈不爽哉!
收起對(duì)“車”日行千里的羨慕;收起對(duì)“馬”左右逢緣的感嘆;目標(biāo)記在心里面,向前進(jìn)。一次一步,一步一腳印,跬步千里。
這個(gè)角色很適合現(xiàn)在的我。
posted on 2007-12-17 23:44
過(guò)河卒 閱讀(303)
評(píng)論(0) 編輯 收藏 所屬分類:
W3C/Css/Html