不寫!important的情況下id選擇器能不能被class頂?shù)簦?/h1>
class選擇器的權(quán)值是10,id選擇器的權(quán)值是100,那我如果寫11層class是不是能把id的樣式頂?shù)簦?br />
class選擇器的權(quán)值是10,id選擇器的權(quán)值是100,那我如果寫11層class是不是能把id的樣式頂?shù)簦?br />
2015-06-26
!important是CSS1就定義的語法,作用是提高指定樣式規(guī)則的應(yīng)用優(yōu)先權(quán)。
由于css是采用越接近越優(yōu)先的原則,同一個定義,比如{margin: 2px;margin: 0px;},在IE和firefox中就會解釋成{margin: 0px;};而使用了!important之后,!important對firefox有效,對IE無效。
故{margin: 2px !important; ? margin: 0px;},在firefox中解釋為{margin:2px;},在IE中解釋為{margin:0px;}
!important用來讓firefox支持前面的定義,忽略后面的定義
!important對IE無效,IE依然會采用后面的定義,即后面的定義有效,前面的無效。
執(zhí)行步驟應(yīng)該是從左向右掃描。
(1)先找到div塊,div塊有定義屬性背景色為黑色,把div塊背景色設(shè)置為黑色。
(2)接著掃描到class屬性,對應(yīng)有定義背景色為紅色,并且優(yōu)先級最高,覆蓋div塊中定義的屬性,把背景色設(shè)置為紅色。
(3)接著繼續(xù)掃描到 id 屬性,有定義背景色為藍色,但是優(yōu)先級沒有比class屬性定義的高,沒法覆蓋,所以背景色還是紅色。
注:假如你把背景色為紅色的!important標注去掉,最終結(jié)果會是藍色。