css区分ie8/ie9/ie10/ie11 chrome firefox的代码
网站兼容性调试实在令人烦心,现在的网站设计人员真的要比以前费力很多,因为网页代码不再是只需满足一个IE6访问就行,而是要满足N多的浏览器访问正常才行。粗略算一下,目前至少要满足如下的浏览器要求:IE8、IE9、IE10、IE11、Chrome、Firefox,由于360使用的是Chrome内核,所以满足Chrome基本就满足了360。而IE家族真是一个版本一个样,我说IE怎么这么喜欢折腾呢?这给网页设计师带来多大的麻烦呀!今天,我就把这几个主要浏览器的CSS hack代码汇总一下。
例如现有CSS代码如下:
.divContent{
background-color:#eee;
}
那么下面我们就来写一下,如何使代码兼容几个主流浏览器。
/* IE8+ */
.divContent{
background-color:#eee\0;
}
/* IE8、IE9 */
.divContent{
background-color:#eee\8\9\0;
}
/* IE9 */
.divContent{
background-color:#eee\9\0;
}
注意,\8\0的写法是错误的,不能试图这样hack IE8。上述代码没有对IE10和IE11分别hack(好像没有对这两个浏览器单独hack的写法),那么IE10和IE11使用的就是IE8+那个样式。
IE家族hack完毕,下面看看如何hack Chrome和Firefox浏览器。
/* Chrome */
@media screen and (-webkit-min-device-pixel-ratio:0) {
.divContent{
background-color:#eee;
}
}
/* Firefox */
@-moz-document url-prefix() {
.divContent{
background-color:#eee;
}
}
另外,还可以这样hack其他浏览器
/* Chrome 和 opera */
@media all and (min-width:0){
.divContent{
background-color:#eee;
}
}
/* IE9+ */
@media all and (min-width:0) {
.divContent{
background-color:#eee;
}
}
/* IE10+ */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
.divContent{
background-color:#eee;
}
}
经过这样hack,网站浏览器兼容性问题就可以完美解决了。
您可能对以下文章也感兴趣
- 不注意这点,\9和\0就可能对hack IE11\IE9\IE8无效
- IE7/IE8/IE9/IE11 CSS hack 写法
- IE11 hack css的符号原来是“#”号
- css巧用两符号#和下横线解决div高宽的浏览器兼容性问题