网站兼容性调试实在令人烦心,现在的网站设计人员真的要比以前费力很多,因为网页代码不再是只需满足一个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高宽的浏览器兼容性问题
|