IE浏览器CSS Hack速查表(IE6/7/8/9/10)

作者:袖梨 2022-06-25


CSS Hack的原理是什么

由于不同的浏览器对CSS的支持及解析结果不一样,还由于CSS中的优先级的关系。我们就可以根据这个来针对不同的浏览器来写不同的CSS。

CSS Hack大致有3种表现形式,CSS类内部Hack、选择器Hack以及HTML头部引用(if IE)Hack,CSS Hack主要针对IE浏览器

类内部Hack:比如 IE6能识别下划线”_”和星号” * “,IE7能识别星号” * “,但不能识别下划线”_”,而firefox两个都不能认识。等等

选择器Hack:比如 IE6能识别*html .class{},IE7能识别*+html .class{}或者*:first-child+html .class{}。等等

HTML头部引用(if IE)Hack:针对所有IE:,针对IE6及以下版本:,这类Hack不仅对CSS生效,对写在判断语句里面的所有代码都会生效。

书写顺序,一般是将识别能力强的浏览器的CSS写在后面。下面如何写里面说得更详细些。

如何写CSS Hack
比如要分辨IE6和firefox两种浏览器,可以这样写:

 代码如下 复制代码

我在IE6中看到是红色的,在firefox中看到是绿色的。


IE6 CSS Hack


IE6 CSS Hack only

 代码如下 复制代码

/* For IE6 and earlier */
* html .demo{color:#090;}
.demo{_color:#090;}other IE6 CSS Hack

.demo{*color:#090;/* For IE7- */}
.demo{+color:#090;/* For IE7- */}
.demo{#color:#090;/* For IE7- */}
.demo{>color:#090;/* For IE7- */}
.demo{.color:#090;/* For IE7- */}
.demo{color:#0909;/* For IE6+ */}
.demo{[;color:#f00;];/* For IE7- and webkit */}
.demo{color:#0909;/* All IE */}

IE7 CSS Hack

 代码如下 复制代码

IE7 CSS Hack only

* + html .test{color:#ff0;}     /* For IE7 */other IE7 CSS Hack

.demo{*color:#090;/* For IE7- */}
.demo{+color:#090;/* For IE7- */}
.demo{#color:#090;/* For IE7- */}
.demo{>color:#090;/* For IE7- */}
.demo{.color:#090;/* For IE7- */}
.demo{color:#0909;/* For IE6+ */}
.demo{[;color:#f00;];/* For IE7- and webkit */}
.demo{color:#0909;/* All IE */}


IE8 CSS Hack

 代码如下 复制代码

IE8 CSS Hack only

.demo{color::#09F/}/* For IE8 */other IE8 CSS Hack

.demo{color:#09F;/*IE8+*/}
.demo{color:#0909;/* All IE */}

IE9 CSS Hack

IE9 CSS Hack only
暂未发现仅IE9能识别的CSS Hack;随着IE10、IE11的出现网络上流传的“IE9 CSS Hack only”已经失效。

 代码如下 复制代码

other IE9 CSS Hack

.demo{color:blue9;}  /* IE9+*/
.demo{color:#09F;/*IE8+*/}
.demo{color:#0909;/* All IE */}
@media screen and (min-width:0) {
    .demo{color:blue;}/* IE9 , IE10 ,IE11 rule sets go here */
}

IE10 CSS Hack
IE10 CSS Hack only

 代码如下 复制代码

other IE10 CSS Hack

.demo{color:blue9;}  /* IE9+*/
.demo{color:#09F;/*IE8+*/}
.demo{color:#0909;/* All IE */}

@media screen and (min-width:0) {
    .demo{color:blue;}/* IE9 , IE10 ,IE11 rule sets go here */
}
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
    .demo{color:blue;}/* IE10-specific styles go here */
}

总结,随着IE的逐渐标准化,IE11和IE10可能很少用不到CSS Hack了。

相关文章

精彩推荐