用 important實現ie6的hack

2021-04-30 01:26:18 字數 771 閱讀 7713

以前對於!important這個屬性不是很關注,也不是很清楚他的用處。

剛才在老楊 那看到他的一篇關於!important的應用,之後豁然開朗,原來!important也可以當做是ie6的hack。

看例子:

div

上面是ie6的乙個經典bug----雙邊距bug,就是說當乙個層用到float,又用到margin的屬性的時候,ie6就有可能把這個層的margin值解析為雙倍的。

其中一種解決辦法:

div

就是給這個層加乙個display:inline的屬性,使ie6和其他瀏覽器的解析都是一樣的,具體的原理這裡我就不解釋了。

還有一種辦法:

div

用_margin-left:20px;這個只有ie6才解析的hack來解決雙邊距的bug。

今天要介紹的用!important來解決的辦法:

div

因為ie6不支援!important規範,而ie7及以上版本、firefox、chrome都支援!important規範,所以在ie7及以上版本、firefox、chrome瀏覽器中這個層的邊距就是40px,而在ie6中,這個層的邊距就會執行20px的語句了。

這也不失為乙個ie6的小hack。

IE6支援important的小注意

ie6真的不認識不支援 important嗎?答案是 no 現在舉幾個例子說明這個問題,以下面的 xhtml 為例 第乙個例子的 css ul list li first 在 ie6 裡,第一行文字為紅色,important 起作用了。如果 first 不加 important 那麼在所有瀏覽器中第...

ie6下面不支援 important的處理方法

例子 在 ie7及firefox下,為紅色。這是因為ie6不認important 即不認 importmant 但是還是認 important前面的color red 並且color blue放在color red的後面 後面的css定義覆蓋了前面的 color red 所以在ie6下字為藍色 持 ...

ie6 滾動條無限下拉(鄙視IE6)

昨天在做頁面,測試到ie6的時候,遇到滾動條無限下拉的bug,ie6就是這麼麻煩,後來找了一些資料來看,自己嘗試了一些方法,終於找到解決方法。一般ie6會出現這種問題,都是你設定了某個東西的position abselute,在ie6下,遇到這種絕對位置的,他會一直往父元素找乙個position r...