您的位置:首页 > Web前端 > CSS

[整理]IE6,IE7,FF等浏览器相互区别的CSS写法

2010-06-02 16:27 411 查看
区别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 !important;*background:blue;

具体写法很容易:

#someNode
{
position: fixed;
#position: fixed;
_position: fixed;
}

* 第一排给Firefox以及其他浏览器看
* 第二排给IE7(可能以后的IE8、IE9也是如此,谁知道呢)看
* 第三排给IE6以及更老的版本看

在一个月前,我总结了IE条件注释,还有如何使用特殊的字符(如:星号,下划线)在你的样式表中区别 IE 6 ,IE7 和 IE8。

今天我们再次提起这些东西,我想说的是我们在使用这些CSS Hacks的时候是否考虑到它们的安全性,毕竟它们是使用特殊风格的指令来区别一些浏览器 的,它们是暂时的解决方案,并代表未来也是这样的。假如,

随着火狐4的发布,他们也承认带有*前缀的属性。那个时候你头疼的事就来了。

虽然我们一般情况下是不提倡使用的,我认为如果我能找到一个真正的CSS解决方案来处理现有问题的话,我们就谨慎的使用它。如果没有办法我就毫不迟疑地使用它们。

但是,如果把 IE条件注释 和 CSS Hacks 组合使用,也许能为我们减少不必要的麻烦。

<!--[if lte IE 7]>
让IE7的快乐。
<![endif]-->

认识「\9」、「*」、「_」区别字符

IE系列的浏览器可读「\9」,而IE6和IE7可读「*」(星号),另外IE6可辨识「_」(下划线),因此可以依照顺序写下来,就会让浏 览器正确的读取到自己看得懂得CSS语法,所以就可以有效区分IE各版本和非IE浏览器(像是Firefox、Opera、Google Chrome、Safari等)。
IE8 及 以下的

对于IE8 及以下的的浏览器,用一个hack,那就是在你的样式属性末尾处添加 “ \9 ” 。

例如:

body {
color: red; /*支持所有的浏览器*/
color : green\9; /* 支持IE8 及 以下的 */
}

IE7 及 以下的

当然要使用 “ * ” ,它只有IE6和IE7可以认出来,IE8和其它的浏览器不做处理。

body {
color: red; /*支持所有的浏览器*/
color : green\9; /* 支持IE8 及 以下的 */
*color : yellow; /* 支持IE7 及 以下的 */
}

最后,我们强调一个hack,在IE6没有离开我们之前,大多数设计师所熟的是“ _ ” 下划线 ,而不是“ * ” 符号。它只针对Internet Explorer 6 。

body {
color: red; /* all browsers, of course */
color : green\9; /* IE8 and below */
*color : yellow; /* IE7 and below */
_color : orange; /* IE6 */
}

margin:17px; FF
+margin:17px; IE6 IE7
_margin:17px; IE6
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: