电脑技术学习

CSS hack:区分IE6、IE7、IE8和firefox

dn001
这些CSS hack写法用于区别不同浏览器,总结一下,尽量全面一点。
注意下面介绍的这些hack写法仅适用于XHTML1.0。如果没有在HTML最前加上
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">

那么效果将不一样!此外,这里所说的IE8,不是指IE8的兼容模式,因为IE8的兼容模式其实就是IE7。


区别IE6、7与FF/IE8:
;;;;background:blue;*background:orange;
引用
显示效果:
IE 6/7:orange
FF/IE8:blue
原理:FF/IE8不支持*开头,而IE6/7都支持。
;


区别IE6与IE7/IE8/FF:
;;;;background:green;_background:blue;
引用
显示效果:
IE7/8/FF:green
IE6:blue
原理:IE6支持下划线"_",IE7、8和firefox均不支持下划线。
;



区别FF/IE8和IE6/7:
background:orange;+background:green;-background:blue;
或者
background:orange;*background:green!important;*background:blue;
引用
显示效果:
IE6:blue
IE7:green
FF/IE8:orange
原理:IE6能识别-,IE7能识别+,IE8和FF都不能识别+和-
IE8/FF都不识别*,IE7优先识别!important,IE6不能识别!important。
;


关于IE8的hacks:
.test{
;;;;color:/***/#00f9; /* IE8 only */
;;;;color:#00f9; /* 适用于所有IE版本 */
}

可同时区分IE8、IE7、IE6、Firefox的CSS hacks:
.test{
;;;;color:#000; /* Firefox */
;;;;color:/***/#00f9; /* IE8 */
;;;;*color:#f00; /* IE7 */
;;;;_color:#0f0; /* IE6 */
}