最近看了幾篇關於css hack的文章,覺得不錯整理一下。
css hack很多人不理解它的原理,其實大家都知道對於不同的瀏覽器,CSS的解析程度不一樣,因此會導致生成的頁面效果不一樣;特別是對於IE這種蛇精病的瀏覽器來說,這個時候我們就需要針對不同的瀏覽器(特別是IE)去寫不同的CSS,這個過程就叫做css hack.而不是那個hack,可以說css hack是一種借助於不同瀏覽器之間規則標準的不同而實現相容性的一種「曲線救國」的策略,雖然如此,我們還是希望世界大同,有個統一的標準能夠統一瀏覽器規範T T
css hack主要依據的是
1 .瀏覽器對CSS的支援及解析結果不一樣;
2.CSS中的優先順序的關係。
常用的CSS hack 有三種方式,CSS 內部hack、選擇器hack、HTML 頭部引用,其中第一種最常用。
A.css 內部hack:
CSS 內部hack 語法是這樣的 selector{?property:value?;} 例如IE6能辨識下劃線"_"和星號"*",IE7能辨識星號"*",但不能辨識下劃線"_",而firefox兩個都不能認識。對於書寫順序的關係,一般是將辨識能力強的瀏覽器的CSS寫在後面。
<style> div{ background:green;/*forfirefox*/ *background:red;/*forIE6 IE7*/ } </style>
這樣的話就成功對IE6,7 做了一次hack;
再比如,「!important」的寫法只有IE6不能識別,其它版本IE及現代瀏覽器都可以識別
其它版本IE及現代瀏覽器都可以識別,還有“+”、“