很多人,包括很多網站(我所見過的所有網站,包括國內著名的‘網頁設計師’網站),都說important是不被IE所支持和認識的,可是真的是這樣嗎?看了下邊的兩個例子,也許你會改變一些看法!
例一:
CSS
#box {
color:red !important;
color:blue;
}
HTML
<div id="Box"> 在不同的瀏覽器下,這行字的色應該不同!</div>
這個例子應該是大家經常見到的important的用法了,在IE環境下,這行字是藍色,在firefox下,為紅色,其用法不再多說了,看下一個例子。
例二:
CSS
1 #box div{
color:red;
}
2 .important_false{
color:blue;
}
3.important_true{
color:blue !important;
}
HTML
<div id="Box">
<div class="important_false">這一行末使用important</div>
<div class="important_true">這一行使用了important</div>
</div>
例二中,CSS代碼第一行設定了box里面所有div中字體色為紅色,第二行和第三行都用class重新定義了自身div的字體色為藍色,不同的是,第二行末使用important,而第三行使用了!
默認情況下,class的優先級小于id,所以,第二行中即使用class重定義了自身樣式,也無法生效,所以繼承父級屬性,這行字還是紅色!
但是,第三行中,用了important提升優先級(或看成強制重定義),所以這里的css得以生效,這行字變為了藍色!
從這個例子,得以證明,ie對important的并不是不支持!
那么為什么很多人都說ie不認識它呢?我想應該是大家實戰中可能都沒有遇到例子中的情況: 當你想提升class的優先級時怎么辦?
也就是說大家可能都忽略了它的這一作用,只了解在命名為同一個元素的CSS代碼塊中,用它來提升排列順序相對靠前的代碼的優先級(例一)!
通過上邊兩個例子,得以總結:
important對 一個良好(或者是標準)的瀏覽器來說,不僅僅是從順序上提升代碼的優先級,還可以用來提升class的優先級(比如firefox),但是從IE對前者的不支持可以看出,這只是IE的一大BUG,而不能說它“不認識、不支持”!
然而,不管怎么樣,IE的這一大BUG幫助我們解決了很多兼容性問題,這顯然不是件壞事!
posted on 2006-03-09 03:19
Raven 閱讀(7096)
評論(20) 編輯 收藏 所屬分類:
XHTML/CSS