IE10 CSS Hack(顺便聊聊IE11的CSS Hack)
浏览:1737次 出处信息
有IE就有hack,看看IE9的css hack,IE8的css hack;上次同事说一个页面IE10下有问题,IE9下测试了一下,也有同样的问题。悲剧了赶紧找IE10的hack。
google上翻到的IE10 CSS Hacks 还算比较实用的。记录一下以备后用。
一、特性检测:@cc_on
我们可以用IE私有的条件编译(conditional compilation)结合条件注释来提供针对ie10的Hack:该脚本里面的IE排除条件注释,以确保IE6-9不承认它,然后它功能检测到了名为@ cc_on。
1 2 3 4 5 | <!--[if !IE]><!--><script> if(/*@cc_on!@*/false){ document.documentElement.className+=' ie10'; } </script><!--<![endif]--> |
请注意/*@cc_on ! @*/中间的这个感叹号。
这样就可以在ie10中给html元素添加一个class=”ie10″,然后针对ie10的样式可以卸载这个这个选择器下:
1 2 3 | .ie10 .example { /* IE10-only styles go here */ } |
这是ie10标准模式下的截图:
这是ie10,IE8模式下的截图:
考录到兼容以后的IE版本,比如IE11,js代码可以改一下:
1 2 3 | if(/*@cc_on!@*/false){ document.documentElement.className+=' ie'+document.documentMode; } |
关于document.documentMode可以查看IE的documentMode属性(IE8+新增)。
可能是想多了,实事上经测试预览版的IE11已经不支持@ cc_on语句,不知道正式版会不会支持。不过这样区分IE11倒是一件好事。这样修改代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> <!--[if !IE]><!--> <script> // 针对IE10 if(/*@cc_on!@*/false){ document.documentElement.className+
建议继续学习:
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习 << 前一篇:CSS选择器
后一篇:HTML 5 的data-* 自定义属性 >>
文章信息
近3天十大热文
rightLowest
|