css hack解决IE5 IE5.5 IE6 Firefox浏览器兼容性
2010-08-11 10:17
447 查看
一直比较关注,最近找了一个比较全的,分享一下。
为了不同浏览器的观看效果,我们当然没必要为每个浏览器的不同版本写一个样式,这里我们利用“IE条件注释”。
找了一些相关的CSS HACK后,总结的几个方法。
1. 区别FF和IE
1-1
首先,当然是!important大法,可以提升指定样式规则的应用优先权,如下面的例子:
插入代码:
div{
background-color: red !important;
background-color: blue;
}因为!important声明在IE6中并不是绝对的,它会被之后的同名属性定义所替换。也就是说在上面的例子中,IE6所应用的是最后一个背景色的值,即“blue”;而在FF中背景色的值为“red”。
1-2
还有一种方法,就是IE浏览器可以识别“>”等一些符号,如“~”、“`”、“
插入代码:
div{
background-color: red;
>background-color: blue;
}在FF中得到的是背景色红色,而在IE中得到的背景色是蓝色,根据样式重定义的规则,如果浏览器可以识别“>”,则应该得到的蓝色的背景,因此可以知道“>”只有IE可以识别。
这样,我们就可以把FF和IE的样式分离开。下面就是解决IE自己的问题了。
2. 区别IE5.5和IE的其他版本
看一个例子:
插入代码:
div{
>background-color: black;
>background-color /*IE5.5*/: green;
}这个例子使用了“>”,只有IE可以识别,在IE6中得到了黑色的背景;而在IE5.5中得到的绿色的背景;在IE5中也得到了黑色的背景。这就说明了第二句定义只有IE5.5能识别,这是个很早就公布的HACK,可以在网上找到相关的资料,要注意的就是在属性名之后是有一个空格的。
到此我们已经把FF、IE5.5、IE6分离出来了,那IE5呢?其实现在我们只要把IE5跟IE6分开就OK了。
3. 区别IE5与IE5.5+
插入代码:
div{
>background-color: red;
}
div/*IE5.5+*/{
>background-color: black;
}这里我们又用到一个HACK,就是“div/**/{}”,这个定义在IE5以上的版本才能识别出来。这个例子得到的结果是,在IE5中的背景色为红色;在IE5以上版本中得到的是黑色背景。
4. 完整的Hack
这样我们就可以为不同的浏览器定义不同的样式了。来看个完整的例子:
插入代码:
div{
width: 500px;
height: 50px;
background-color: red !important;/*FF*/
background-color: blue;/*IE5*/
text-align:center;
}
div/*IE5.5+*/{
>/*IE only*/background-color: black;/*IE6*/
>/*IE only*/background-color /*IE5.5*/: green;
}需要注意的是,在上面例子中“background-color”定义的顺利不能改变,即FF-IE5-IE6-IE5.5。对于IE的定义在属性前要加“>”,因为“div/**/{}”这个HACK在FF中可以识别。
鼠标手形:(兼容IE FF) hand等同于pointer,而后者可以兼容IE和FF
为了不同浏览器的观看效果,我们当然没必要为每个浏览器的不同版本写一个样式,这里我们利用“IE条件注释”。
找了一些相关的CSS HACK后,总结的几个方法。
1. 区别FF和IE
1-1
首先,当然是!important大法,可以提升指定样式规则的应用优先权,如下面的例子:
插入代码:
div{
background-color: red !important;
background-color: blue;
}因为!important声明在IE6中并不是绝对的,它会被之后的同名属性定义所替换。也就是说在上面的例子中,IE6所应用的是最后一个背景色的值,即“blue”;而在FF中背景色的值为“red”。
1-2
还有一种方法,就是IE浏览器可以识别“>”等一些符号,如“~”、“`”、“
插入代码:
div{
background-color: red;
>background-color: blue;
}在FF中得到的是背景色红色,而在IE中得到的背景色是蓝色,根据样式重定义的规则,如果浏览器可以识别“>”,则应该得到的蓝色的背景,因此可以知道“>”只有IE可以识别。
这样,我们就可以把FF和IE的样式分离开。下面就是解决IE自己的问题了。
2. 区别IE5.5和IE的其他版本
看一个例子:
插入代码:
div{
>background-color: black;
>background-color /*IE5.5*/: green;
}这个例子使用了“>”,只有IE可以识别,在IE6中得到了黑色的背景;而在IE5.5中得到的绿色的背景;在IE5中也得到了黑色的背景。这就说明了第二句定义只有IE5.5能识别,这是个很早就公布的HACK,可以在网上找到相关的资料,要注意的就是在属性名之后是有一个空格的。
到此我们已经把FF、IE5.5、IE6分离出来了,那IE5呢?其实现在我们只要把IE5跟IE6分开就OK了。
3. 区别IE5与IE5.5+
插入代码:
div{
>background-color: red;
}
div/*IE5.5+*/{
>background-color: black;
}这里我们又用到一个HACK,就是“div/**/{}”,这个定义在IE5以上的版本才能识别出来。这个例子得到的结果是,在IE5中的背景色为红色;在IE5以上版本中得到的是黑色背景。
4. 完整的Hack
这样我们就可以为不同的浏览器定义不同的样式了。来看个完整的例子:
插入代码:
div{
width: 500px;
height: 50px;
background-color: red !important;/*FF*/
background-color: blue;/*IE5*/
text-align:center;
}
div/*IE5.5+*/{
>/*IE only*/background-color: black;/*IE6*/
>/*IE only*/background-color /*IE5.5*/: green;
}需要注意的是,在上面例子中“background-color”定义的顺利不能改变,即FF-IE5-IE6-IE5.5。对于IE的定义在属性前要加“>”,因为“div/**/{}”这个HACK在FF中可以识别。
鼠标手形:(兼容IE FF) hand等同于pointer,而后者可以兼容IE和FF
相关文章推荐
- 用css hack解决IE5 IE5.5 IE6 Firefox浏览器兼容性
- Firefox,IE5,IE6,IE5.5等浏览器兼容性解决方法
- Firefox,IE5,IE6,IE5.5等浏览器兼容性解决方法
- CSS HACK 兼容列表 Firefox, IE5, IE5.5, IE6, IE7, IE8
- IE6/Firefox CSS兼容问题 - 解决IE5/IE5.5/IE6/Firefox的CSS兼容性问题
- CSS HACK 兼容列表 Firefox, IE5, IE5.5, IE6, IE7, IE8
- CSS HACK 兼容列表 Firefox, IE5, IE5.5, IE6, IE7, IE8
- 解决IE5、IE6、IE7与W3C标准的冲突(IE7.js IE8.js)
- 解决IE5、IE6、IE7与W3C标准的冲突,使用(IE7.js IE8.js)兼容
- CSS HACK:IE6、IE7、IE8、Firefox兼容性问题解决方案
- 解决IE6、IE7、Firefox兼容最简单的CSS Hack
- 【浏览器兼容性】css解决IE、Firefox兼容的div高度100%的问题
- CSS HACK:IE6、IE7、IE8、Firefox兼容性问题解决方案
- 解决IE5、IE6、IE7与W3C标准的冲突,使用(IE7.js IE8.js)兼容
- [转]解决IE5、IE6、IE7与W3C标准的冲突(IE7.js IE8.js)
- 通过CSS Hack 区分 FF/IE7/IE6/IE5.5/IE5 代码推荐
- IE等主流浏览器css hack,包括IE6,IE7,IE8,IE9,firefox,chrome
- 解决IE6、IE7、Firefox兼容最简单的CSS Hack
- CSS的解决IE5/IE5.5/IE6/FF/IE7的兼容性问题(css hack)
- CSS Hack解决两个阵营:①IE8、IE9②IE6、IE7、FireFox