下面的内容都来自网络摘抄,现拿出来分享
区分ff/ie6/ie7/ie8
注意下面介绍的这些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。
selector{
property:value; // 所有浏览器
property:value\9; // 所有IE浏览器
+property:value; // IE7
_property:value; // IE6
}
区别IE6、7与FF/IE8:
background:blue;*background:orange;
引用
显示效果:
IE 6/7:orange
FF/IE8:blue
原理:FF/IE8不支持*开头,而IE6/7都支持。
*是标准浏览器如FF不支持的,ie8也不支持,但是IE5/6/7能够识别
区别IE6与IE7/IE8/FF:
background:green;_background:blue;
引用
显示效果:
IE7/8/FF:green
IE6:blue
原理:IE6支持下划线"_",IE7、8和firefox均不支持下划线。
版本小于IE6的IE浏览器能够识别_,但是其他的浏览器,IE7/IE8/FF都不识别_
区别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。
区别FF/IE8/7和IE6:
body>p{color:#f00};
引用
显示效果:
IE6:无色默认
IE7/8/FF:#f00
原理:body>p 支持IE7/8/FF,不支持IE6。
区别IE6和IE7/FF:
selector{color:red!important;color:green;}
显示效果:
IE6:green
IE7/8/FF:red
原理:IE6不识别!importent
IE7识别!importent,并且!importent起到设置优先级的作用
IE8识别!importent,并且!importent起到设置优先级的作用
FF识别!importent,并且!importent起到设置优先级的作用
\9 p {color:#f00\9;} 支持 IE6/7/8 不支持FF
* html p {color:#f00;} 支持 IE6 不支持FF IE7 IE8b
*+html p {color:#f00;} 支持 IE7 IE8b 不支持FF IE6
IE都能识别* 标准浏览器(如FF)不能识别*
IE6能识别* 但不能识别 !important
IE7能识别* 也能识别!important
IE8不能识别* 但能识别!important
FF不能识别* 但能识别!important
关于IE8的hacks:
某外文网站上的解决方案,摘抄如下:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>
大意是:在 <head>中, <title>和任何 <meta>之前插入这个 <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/> ,这一行信息就告诉IE8将该页面按照IE7的规则来处理!
.test{
color:#00f\9; // IE8 only
color:#00f\9; // 适用于所有IE版本
}
可同时区分IE8、IE7、IE6、Firefox的CSS hacks:
.test{
color:#000; // Firefox
color:#00f\9; // IE8
*color:#f00; // IE7
_color:#0f0; // IE6
}
书写顺序为FireFox在最前,其次是IE8、IE7,最后是IE6.
color:red;//所有浏览器
*color:blue\9;//所有IE
+color:orange;//IE7
_color:green;//IE6
若浏览器为FireFox,那么color:red;
若浏览器为IE8,根据CSS优先性原则,color:blue;
若为IE7,color:orange;
若为IE6,则color:green。
对于* - + \9四个标签来说
IE6识别 * 、_
IE7识别 * 、+
IE8识别 \9
FF什么都不识别