常见的浏览器兼容性解决方法
目前,对于网页中一些浏览器兼容性问题,可以使用CSS Hack(CSS招数)和浏览器Bug修复的方式解决。其中,CSS Hack指的是针对特定浏览器编写冗余代码,这是一种欺骗浏览器的行为,预示着有更好的解决办法;而浏览器Bug修复是指针对浏览器本身的Bug,使用CSS自有的属性,进行浏览器显示问题的修复。因此,浏览器Bug修复代码是符合W3C标准规范的,建议能够使用浏览器Bug修复解决的兼容性问题,均使用该方法解决。
下面介绍一些常见的浏览器兼容性问题及解决办法。
1.IE有条件注释
<!--[if IE 8]>
<style type="text/css">
@import "test.css";
</style>
<![endif]-->
在语法中:
1. <!-[ifIE 8]>…<![endif]->:用于声明浏览器版本,在该版本浏览器中使用其中的样式表。
2. @import "test.css":使用导入式导入样式表。
2.子选择器招数
html>body{
background-image:url(bg.png);
}
在语法中:
html>body:针对IE6及其以下版本,隐藏造明图片bg.png.
3.*HTML招数
*html{
font-size:14px;
}
在语法中:
*html:针对IE6及其以下版本,设置字体大小为14px。
4.!important 招数
#nav{
font-size:18px!important;
font-size:14px;
}
在语法中:
Font-size:18px!important: 针对IE7及其以上版本,设置字体大小为18px.
font-size:14px: 针对IE6及其以下版本,设置字体大小为14px.
5.针对IE6~IE8的招数
针对IE6~IE8的招数如表所示。
同时设置多个浏览器的CSS Hack时,必须注意浏览器版本声明顺序:高→低,即IE8一IE7→E6。例如,设置<p>标签中文字大小在IE6中为14px,IE7中为16px,IE8中为18px,其余浏览器,如Firefox 中字体大小为12px,则CSS 代码如下所示。
P{
font-size:12px;
font-size:18px\0;
*font-size:16px;
_font-size:14px;
}
font-size:12px:针对所有浏览器设置字体大小为12px。针对所有浏览器设置的样式,始终位于第一条。
6.IE6双倍空白边距Bug修复
#nav{
float:left;
margin:10px;
display:inline;
}
产生条件:对某一元素,同时设置float属性和margin属性。
显示效果:在IE6中,左、右外边距加倍,上、下外边距无影响。
解决办法:增加 display:inline;。
7.清除浮动Bug修复
#father{
width:100%; /*宽度值可以为固定宽度值*/
overflow:hidden;
}
产生条件:父元素未设置浮动,而子元素设置了浮动。
显示效果:父元素高度得不到扩展,缩成一条,子元素从容器中溢出。
解决办法:为父元素设置 width:宽度值;和overflow:hidden;。