IE各版本hack汇总
虽然大师们一般不屑于使用浏览器的hack技术,因为hack会影响性能,但是对于需要快速更迭的前端页面,更重要的开发效率,这时hack技术可以帮你节省大量的时间与精力。
众所周知,IE在CSS上有着自己一套“独特”的渲染方案,往往会给新手带来诸多烦恼,这里主要列出IE各个版本使用的hack技术。
兼容所有IE版本的hack: \9
例如:.header {width:300px;} /* 所有浏览器*/
.header {width:330px\9;} /* 所有浏览器IE浏览器 */
只被IE6识别的hack: _
例如:.header {_width:290px;}
只兼容IE6和IE7的hack: *
例如:.header {*width:310px;}
只被IE8识别的hack: \0
例如:.header {width:310px\0;}
注意:实际上IE的hack还有很多,而且IE还需要细分为IE(Q)、IE(S)
hack | 示例 | IE6(S) | IE6(Q) | IE7(S) | IE7(Q) | IE8(S) | IE8(Q) |
* | *color | Yes | Yes | Yes | Yes | No | Yes |
+ | +color | Yes | Yes | Yes | Yes | No | Yes |
- | -color | Yes | Yes | No | No | No | No |
_ | _color | Yes | Yes | No | Yes | No | Yes |
# | #color | Yes | Yes | Yes | Yes | No | Yes |
\0 | color\0 | No | No | No | No | Yes | No |
\9 | color\9 | Yes | Yes | Yes | Yes | Yes | Yes |
IE9以上的浏览器大致和IE9一致,再说IE项目已经被斯巴达项目取代,希望以后浏览器标准能够统一。
对了,IE还有一个html上的hack,就是if条件语句。例如我们在IE上兼容html5标签的时候常常会引入这么一个js:
<!--[if lt IE 9]> <script src="http://s1.zhengshuiguang.com/min/f=js/html5shiv.js"></script> <![endif]-->
这里的if条件语句中的逻辑判断 lt 表示 less than, 即当前版本以下版本,不包括当前版本。
还有 gte 表示 greeter than or equal 当前版本以上版本,并包含当前版本。
本文地址:http://blog.zhengshuiguang.com/css/ie_hack.html
转载随意,但请附上文章地址:-)
评论已关闭