CSS Hack 是指通过针对不同浏览器的特定CSS代码来解决浏览器兼容性问题的一种技术。不过这种技术并不被 W3C 推荐,因为 Hack 会违背样式表规范,也不稳定,而且可能在将来的浏览器版本中失效。
下面是一些针对 IE6、IE7、Firefox 显示不同效果的 CSS Hack:
针对 IE6 的Hack
IE6 的一个主要兼容问题是盒模型计算的不兼容,在标准模式下使用的是 W3C 的盒模型,而在 quirks 模式下则使用 IE 的盒模型。可以使用以下代码来针对IE6解决盒子模型兼容问题:
/* 针对IE6以下版本 */
*html .box {
/* 定义IE6以上浏览器不支持的width:属性 */
width: 300px;
/* 属性放入隐藏的样式中 */
_width: 200px;
/*
_在IE6以下的浏览器中解析为IE6以下版本可识别的css属性,
在IE7浏览器中不识别或者当作普通属性对待,所以IE7及以上浏览器通过 _ 不造成冲突
*/
}
针对IE7的Hack
在IE7以下的浏览器中,可以通过以下代码来设置 margins 和 padding 的间距:
/* 针对IE7及以下版本 */
*+html .box {
margin: 10px; /* 将margin设为10px */
margin: 5px\9; /* 将margin设为5px */
padding: 10px; /* 将padding设为10px */
padding: 5px\9; /* 将padding设为 5px */
/*
在IE6、IE7浏览器中,解析为不同的属性值,IE8及以上版本与其他浏览器一致
*/
}
针对火狐浏览器的Hack
火狐浏览器一般不需要太多的 Hack,但是会有一些细节的问题,比如滚动条的样式、透明度等等问题。可以使用以下代码来针对火狐浏览器的一些兼容性问题:
/* 针对火狐浏览器 */
@-moz-document url-prefix(){
/* 只对火狐浏览器生效 */
body{
scrollbar-face-color: #333; /* 滚动条颜色 */
scrollbar-track-color: #eee; /* 滚动条轨道颜色 */
opacity:0.8; /* 透明度 */
}
}
综上,以上几个示例都是比较常见的兼容性问题和解决方案。在实践中,为了避免 Hack 对其他浏览器产生影响,并且更好地维护代码,我们应该在为不同浏览器编写 CSS 代码时使用更加优雅的解决方案。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CSS hack 针对IE6,IE7,firefox显示不同效果 - Python技术站