传说Windows 8刚上市没几天就卖出了4000多万份,好厉害。然后我们就发现项目中很多页面在IE10中表现不正常了。有的是之前对各版本ie的hack引发的,有些不确定是否是ie10引出的bug,所以惯性思维让我们重新寻找针对IE10的CSS Hack。
首先,ie10不支持条件注释了。前端UI分享
一、特性检测:@cc_on
我们可以用IE私有的条件编译(conditional compilation)结合条件注释来提供针对ie10的Hack:该脚本里面的IE排除条件注释,以确保IE6-9不承认它,然后它功能检测到了名为@ cc_on。
google上翻到的IE10 CSS Hacks 还算比较实用的。记录一下以备后用。
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
|
.ie 10 .example {
/* IE10-only styles go here */
} |
这是ie10标准模式下的截图:前端UI分享
这是ie10,IE8模式下的截图:
条件编译支持所有版本的ie浏览器,而其它浏览器不支持。但是很有可能以后IE11出来后,这种方法就失效了。。。
需要注意的是,条件编译不支持Windows store中的app中使用,只支持在IE浏览器中使用。
当然,我们也可以用传统的用ua给ie10中html元素添加class的方法来实现。
方法二:@media -ms-high-contrast
IE10支持媒体查询,然后也支持-ms-high-contrast这个属性,所以,我们可以用它来hack ie10:
1
2
3
|
if (window.matchMedia( "screen and (-ms-high-contrast: active), (-ms-high-contrast: none)" ).matches) {
document.documentElement.className += "ie10" ;
} |
这种写法可以适配到高对比度和默认模式,所以可以覆盖到所有ie10的模式了,然后这种方式可能也会在后面的IE11中生效。
当然,方法二也可以和方法一一起用:前端UI分享
1
2
3
|
@media screen and ( min-width : 0 \ 0 ) {
/* IE9 and IE10 rule sets go here */
} |
不过,估计后面ie10也会普及到Windows 7平台,所以ie9会消失,只是看看ie8和ie7的份额,这种情况可能不会发生吧。。。
三、@media 0 方法
这个方法不是太完美,因为IE9和预览版的IE11也支持media和\0的hack。
1
2
3
|
@media screen and ( min-width : 0 \ 0 ) {
/* IE9 , IE10 ,IE11 rule sets go here */
} |
总结:
我不想给ie写hack,嗯,不想为ie多写一句代码。。。
相关推荐
本文将详细介绍如何为Firefox以及IE6、IE7、IE8等浏览器编写CSS Hack。 ### CSS Hack定义 CSS Hack是一种专门用于解决浏览器间CSS渲染差异的技术,通过向某些浏览器提供特定的样式规则来达到兼容的目的。CSS Hack...
什么是CSS hack: 由于不同的浏览器,对CSS的解析认识不一样,从而导致生成的页面效果不一样,得不到我们所需要的页面效果。 针对不同的浏览器写不同的CSS code的过程,就叫CSS hack,也叫写CSS hack
尤其是在处理旧版Internet Explorer(如IE6、IE7、IE8)与现代浏览器(如Firefox、Chrome等)之间的样式差异时,CSS Hack技巧成为了必不可少的工具。本文将深入探讨不同浏览器兼容性的CSS Hack代码及其实例,帮助...
### CSS Hack 技术详解及应用 #### 一、引言 随着互联网技术的发展,Web前端开发变得越来越重要。然而,在实际开发过程中,一个不容忽视的问题便是**跨浏览器兼容性**。由于不同浏览器(包括同一浏览器的不同版本...
这份名为“CSS HACK 兼容列表 Firefox,IE5,IE5.5,IE6,IE7,IE8.rar”的压缩包,提供了针对这些浏览器的CSS Hack解决方案,以确保在不同环境下页面的正常显示。 CSS Hack通常指的是利用浏览器解析CSS的bug或者特性,...
CSS布局资料:IE5、IE6、IE7、IE8 的CSS HACK兼容列表
"IE6/IE7/IE8/Firefox/Chrome/Safari的CSS hack兼容一览表" 提供了一个宝贵的资源,帮助开发者解决在不同浏览器之间存在的CSS样式差异。下面我们将深入探讨这个话题,了解各种CSS hack及其在这些浏览器中的表现。 ...
搜集整理的CSS HACK,也即是在多种浏览器(主要是ie6 ie7 ie8 ff)下样式统一的解决办法。 内容还是较全的,前台开发中常见的兼容性问题都可以找到解决方法,值得研究。 包括各浏览器CSS hack,技巧。有实例。
通过合理运用上述提到的各种CSS Hack技术和兼容性解决方案,可以有效地解决不同版本IE浏览器以及其他非IE浏览器之间的兼容性问题,从而确保网站在各种环境下都能够呈现出一致且良好的用户体验。
【CSS Hack技巧大全】 在网页开发中,CSS(层叠样式表)的兼容性问题一直是一个挑战,尤其是在处理不同浏览器间的表现差异时。CSS Hack是一种技术,用来解决这些差异,确保样式在各种浏览器中都能正确呈现。本文将...
css hack ie6 ie7 ie8 firefox等浏览器兼容性
在探讨IE6、IE7、IE8对CSS和JavaScript支持的差异时,我们可以发现一系列显著的兼容性问题和解析规则的变化。以下是对这些差异的详细分析: 1. **JavaScript性能和垃圾收集**: - 在IE6中,JScript引擎在处理大量...
本篇文章主要探讨了针对IE6、IE7、IE8、IE9以及Firefox(FF)的CSS Hack方法。 1. **CSS Hack原理**: 不同的浏览器对某些CSS特性或者字符的识别有所不同。例如,星号(*)在IE6和IE7中被识别为一个选择器前缀,但...
3. **CSS Hack**:对于某些简单的圆角效果,可以使用特定的CSS hack针对IE6-8编写样式,例如使用`expression`或`filter`属性。但这种方法并不推荐,因为它会导致代码复杂性增加,且性能较差。 4. **渐进增强**:...
5. **CSS Hack**:针对IE的兼容性问题,开发者会使用特定的CSS Hack,如`_width`(仅IE6识别)、`*width`(IE6和IE7识别)、`<!--[if IE 8]>...<![endif]-->`条件注释等,以提供针对性的样式。 6. **PNG透明问题**...
### CSS Hack 汇总:解决 IE6,IE7,IE8 及 Firefox 的兼容性问题 在网页设计与开发领域,确保不同浏览器间的代码兼容性是一项挑战性的任务,尤其是在处理像 Internet Explorer 6(IE6)、IE7、IE8 和 Firefox 这些...