{*rule !important}這個css規則當今在網頁制作的時候的普及已經非常流行了,以前我對它的理解就停留在‘瀏覽器是否識別階段’ 而沒有真正去研究過,可是現在發生了變化。眾所周知,!important這個規則對Ie6.0,Ie7.0和Firefox能寫hack,現在就來講解這是什么原理:
*對于Ie系列瀏覽器都能夠識別, firefox 瀏覽器則不能識別;
!important只有Ie7.0和firefox可以識別,但是Ie6.0不能成功應用.
(1)區別ie與firefox的hack為:border:2px solid #f00;*border:1px solid #f00;
(2)區別Ie6.0 與Ie7.0、firefox的hack為:border:1px solid #f00!important;border:2px solid #f00;
在(1)中,之所以把*放在后面是因為ff不識別*而導致只對它設置了一次border;而ie 系列進行了兩次border設置后,后一個屬性覆蓋了前一個屬性,故為一像素的邊框。
在(2)中,之所以把!important放在第一個border 設置,是因為它把這次border的優先級提高了,即使后面在一次甚至在N次設置border 也無效,但是Ie6.0對這個規則不接受,而導致它應用了第二次的border 設置,也就是第二次覆蓋了第一次的這一原理, 并不是它不識別!important;所以它的border為2 像素的紅框.
這是一個簡單的應用:
例一:
CSS
新聞熱點
疑難解答