写WEB前端的朋友可能会经常用到CSS Hack这个功能来处理一些不兼容的问题,下面我给大家建立一个ie6,ie7,ie8,ie9,ie10浏览器Hack速查表,希望对大家有帮助。
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:<!–[if IE]><!–您的代码–><![endif]–>,针对IE6及以下版本:<!–[if lt IE 7]><!–您的代码–><![endif]–>,这类Hack不仅对CSS生效,对写在判断语句里面的所有代码都会生效。
书写顺序,一般是将识别能力强的浏览器的CSS写在后面。下面如何写里面说得更详细些。
如何写CSS Hack比如要分辨IE6和firefox两种浏览器,可以这样写:
代码如下
复制代码
<style>
div{
background:green; /* for firefox */
*background:red; /* for IE6 */
}
</style>
我在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