IE10浏览器的hack解决方法
2013-09-26 16:36
351 查看
标签:
<div style="width:735px; height:405px;">
<div class="mainFloat"></div>
</div>
样式:
.mainFloat {
width:725px;
height:395px;
border:#78a5c2 solid 5px;
padding:0;
overflow-y:hidden;
overflow-x:hidden;
}
这些样式在火狐,谷歌,IE6-IE9都很正常,唯独在IE10下.mainFloat这个div出现了很难看的滚动条,发现该div的父级的宽和高在IE10下是725px和395px,也就是比其他的浏览器少了10px,我想着这是个IE10hack.
以下是我的解决方法:
.mainFloat {
width:725px;
height:395px;
border:#78a5c2 solid 5px;
padding:0;
overflow-y:hidden;
overflow-x:hidden;
}
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
.mainFloat { width:715px; height:385px; }
}
从上面这个hack中,我学到两个解决IE10下hack的方法,特跟大家分享。
方法一:@media -ms-high-contrast
IE10支持媒体查询,然后也支持-ms-high-contrast这个属性,所以,我们可以用它来hack ie10:
在CSS中直接写明就可以,如以上例子:
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
.mainFloat { width:715px; height:385px; }
}
方法二:特性检测:@cc_on
我们可以用IE私有的条件编译(conditional compilation)结合条件注释来提供针对ie10的Hack:该脚本里面的IE排除条件注释,以确保IE6-9不承认它,然后它功能检测到了名为@ cc_on。在这里:
这样就可以在ie10中给html元素添加一个class=”ie10″,然后针对ie10的样式可以写在这个选择器下:
<div style="width:735px; height:405px;">
<div class="mainFloat"></div>
</div>
样式:
.mainFloat {
width:725px;
height:395px;
border:#78a5c2 solid 5px;
padding:0;
overflow-y:hidden;
overflow-x:hidden;
}
这些样式在火狐,谷歌,IE6-IE9都很正常,唯独在IE10下.mainFloat这个div出现了很难看的滚动条,发现该div的父级的宽和高在IE10下是725px和395px,也就是比其他的浏览器少了10px,我想着这是个IE10hack.
以下是我的解决方法:
.mainFloat {
width:725px;
height:395px;
border:#78a5c2 solid 5px;
padding:0;
overflow-y:hidden;
overflow-x:hidden;
}
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
.mainFloat { width:715px; height:385px; }
}
从上面这个hack中,我学到两个解决IE10下hack的方法,特跟大家分享。
方法一:@media -ms-high-contrast
IE10支持媒体查询,然后也支持-ms-high-contrast这个属性,所以,我们可以用它来hack ie10:
在CSS中直接写明就可以,如以上例子:
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
.mainFloat { width:715px; height:385px; }
}
方法二:特性检测:@cc_on
我们可以用IE私有的条件编译(conditional compilation)结合条件注释来提供针对ie10的Hack:该脚本里面的IE排除条件注释,以确保IE6-9不承认它,然后它功能检测到了名为@ cc_on。在这里:
<!DOCTYPE html> <html> <head> <meta charset=utf-8 /> <title>JS Bin</title> </head> <body> <!--[if !IE]><!--<script> if (/*@cc_on!@*/false) { document.documentElement.className+=' ie10'; } </script><!--<![endif]--> </body> </html>请注意/*@cc_on ! @*/中间的这个感叹号。
这样就可以在ie10中给html元素添加一个class=”ie10″,然后针对ie10的样式可以写在这个选择器下:
.ie10 .mainFloat{ /* IE10-only styles go here */ width:715px; height:385px; }
相关文章推荐
- 解决各大浏览器兼容问题hack方法总结
- css中使用if条件在各大浏览器(IE6\IE7\IE8)中hack方法解决教程
- 浏览器hack总结 详细的浏览器兼容性解决方法
- win8系统中IE10浏览器提示“您还没有安装flash播放器 请点击这里安装”两种解决方法介
- 浏览器hack总结 详细的浏览器兼容性的快速解决方法
- 浏览器hack总结 详细的浏览器兼容性解决方法
- win8系统中ie10浏览器fash无法打开解决方法
- hack :是解决页面浏览器不兼容的技巧方法
- 浏览器hack总结 详细的浏览器兼容性的快速解决方法
- 跨浏览器PHP下载文件名中的中文乱码问题解决方法
- 不同浏览器中空格占位不同的解决方法
- div+css浏览器兼容问题解决方法
- 【转】IE8浏览器无法保存Cookie的解决方法
- chrome 360 等浏览器无法预览Axure文件,解决方法
- css 行级元素在多浏览器下的宽度问题 与解决方法
- HTML页面中input元素在android浏览器中获得焦点后页面放大解决方法
- iframe导致浏览器内存溢出的解决方法
- FCKEditor在IE10下的不兼容问题解决方法
- 金山词霸在遨游(maxthon)浏览器下不能通过鼠标取词解决方法
- 解决在firefox浏览器不支持ajax的transport.responseXml方法问题