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,网站浏览器兼容性问题就可以完美解决了。

原文链接:http://www.webkaka.com/tutorial/html/2015/080912/

相关推荐