CSS !Important及感嘆號(!) hack的應用

!important是我們在解決css ie6兼容性問題中最常用到一個語法,不少人誤以爲!important是一種hack,實際上,!important是CSS1就定義的語法,作用是提高指定樣式規則的應用優先權,只是ie6不支持而已。如下:

body
{
color: black !important; /* IE6以上版本及其他瀏覽器中的顏色*/
color: blue;/*ie6中的顏色*/
}

實際上,在上面的例子中,ie6並非不能識別!important前面的屬性“black”,只是ie6不能識別!important前面的屬性“black”的優先級。如下:

body
{
color: blue;
color: black !important; /* 所有瀏覽器中都會顯示黑色,當然這樣的寫法毫無意義*/
}

不難看出,!important所賦予其之前的屬性值的高優先級只是瀏覽器的一個怪癖而已,實際上,IE7及更早版本的IE瀏覽器接受任意字符串替代important,並且會正常處理”!“之前的css屬性值,而其它瀏覽器則會忽略。如下:

body
{
color: black; /*IE7以上版本IE及其他瀏覽器顯示黑色*/
color: blue !ie; /*IE7及以下版本IE顯示藍色*/
}

這裏"!"+"任意字符串"類似於星號(*)的作用,只識別IE7及以下版本IE。如下,可實現同樣的效果。

body
{
color: black; /*IE7以上版本IE及其他瀏覽器顯示黑色*/
*color: blue; /*IE7及以下版本IE顯示藍色*/
}

轉載請註明轉自五月蘭博客,http://www.wuyuelan.com

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章