平常做浏览器兼容一般都做ie6,ie7,和火孤,ie8的兼容倒还是没怎么用过,下面是我找的一个兼容ie8的hack
#test{
color:red; /* 所有浏览器都支持 */
color:red !important;/* Firefox、IE7支持 */
_color:red; /* IE6支持 */
*color:red; /* IE6、IE7支持 */
*+color:red; /* IE7支持 */
color:red\9; /* IE6、IE7、IE8支持 */
color:red\0; /* IE8支持 */
}
body:nth-of-type(1) p{color:red;} /* Chrome、Safari支持 */
但经常有宽度px的设置,这种情况可以这样写
select{ left:-57px; left:4px\9; #left:-57px; _left:-57px;}
- left:-57px; 全局定义,所有浏览器都识别 [FF,chrome]
- left:4px\9; IE hack,非IE浏览器无法识别 [IE8]
- *left:-57px; IE7,6 识别 [IE7]
- _left:-57px; IE6 识别 [IE6]从例子可以看出,先是通过②定义全部IE的样式,再通过③④覆盖定义IE7,6的样式,这样使得IE8的最终解析为 left:4px\9;
- 其实这比较麻烦,ie8有其独有的hack,这一句也可以写成left:4px\0;