CSS 兼容問題
2024-07-11 08:44:57
供稿:網友
什么叫CSS HACK呢? 針對不同的瀏覽器寫不同的CSS code的過程,就叫CSS hack,也叫寫CSS hack。
CSS Hack的原理是什么(CSS的兼容問題)
由于不同的瀏覽器對CSS的支持及解析結果不一樣,還由于CSS中的優先級的關系。我們就可以根據這個來針對不同的瀏覽器來寫不同的CSS。
比如 IE6能識別下劃線"_"和星號" * ",IE7能識別星號" * ",但不能識別下劃線"_",而firefox兩個都不能認識。等等
書寫順序,一般是將識別能力強的瀏覽器的CSS寫在后面。
總則:一般情況下:CSS的書寫順序為,將識別能力強的瀏覽器的CSS寫在后面。
總規:IE6能識別下劃線"_"和星號" * ",IE7能識別星號" * ",但不能識別下劃線"_",而firefox兩個都不能認識。
分規:
CSS hack:區分IE6,IE7,firefox
區別不同瀏覽器,CSS hack寫法:
區別IE6與FF:
background:orange;*background:blue;
區別IE6與IE7:
background:green !important;background:blue;
區別IE7與FF:
background:orange; *background:green;
區別FF,IE7,IE6:
background:orange;*background:green;_background:blue;
background:orange;*background:green !important;*background:blue;
注:IE都能識別*;標準瀏覽器(如FF)不能識別*;
IE6能識別*,但不能識別 !important,
IE7能識別*,也能識別!important;
FF不能識別*,但能識別!important;
總結:
IE6 IE7 FF
* 能 能 不能
"_" 能 不能 不能
!important 不能 能 不能
舉例:
以: " #demo {width:100px;} "為例;
#demo {width:100px;} /*被FIREFOX,IE6,IE7執行.*/
* html #demo {width:120px;} /*會被IE6執行,之前的定義會被后來的覆蓋,所以#demo的寬度在IE6就為120px; */
*+html #demo {width:130px;} /*會被IE7執行*/
---------------
所以最后,#demo的寬度在三個瀏覽器的解釋為:
FIREFOX:100px;
ie6:120px;
ie7:130px;