!important大法

IE6的對css標準化的支持的不盡人意總叫人十分的惱火,比如我今天幫別人做blog的模板的時候,在FF下明明顯示好好的,可是跑到IE6下一看,嚴重錯位。怪自己平時對web標準化修煉不夠,解決不了。第一感覺是想到了IE hack的if語句,可是這樣的話就意味著要重新建立一個.css文件,這可不好,有沒有辦法在同一個.css文件裡面定義樣式來區別FF和IE6呢?這時候搜索到了!important語句。我發現
#div{
background-color: red !important;
background-color: blue;
}


以上的定義在IE6中背景色變成了藍色而不是紅色,而在FF下是紅色。看來這個!important能解決我的問題。繼續搜索了下!important的作用,原來!important聲明在IE6中並不是絕對的,它會被之後的同名屬性定義所替換。也就是說在上面的例子中,IE6所應用的是最後一個背景色的值,即「blue」;而在FF中背景色的值為「red」。
還有一種方法,就是IE瀏覽器可以識別「>」等一些符號,如「~」、「`」、「<」等,都只有IE可以識別,但是不合理,!important是符合標準的。所以 #div{
background-color: red;
>background-color: blue;
}

在FF中得到的是背景色紅色,而在IE中得到的背景色是藍色,根據樣式重定義的規則,如果瀏覽器可以識別「>」,則應該得到的藍色的背景,因此可以知道「>」只有IE可以識別。

這樣,我們就可以把FF和IE的樣式分離開。

2 Responses to !important大法

  1. 卡卡 says:

    原來你也用FF 我的很漂亮

Leave a Reply

Your email address will not be published. Required fields are marked *