关于浏览器兼容性问题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

关于浏览器兼容性问题

制作网页时总会遇到各种浏览器的兼容性问题,工作也有一段时间了,做了一点小总结希望分享给大家,共同进步。

1、float定位。

Float定位是css排版中的非常重要的手段,属性float值:left、right、none(默认值),当设定了元素向左或者向右浮动时,元素会向其父元素的左侧或右侧靠紧。

在用float的同时我们要注意到

(1)float元素的父元素不能指定clear属性。

这是因为MaeIE下如果对float的元素父元素使用clear属性,周围的float元素布局就会混乱。

(2)float元素无比知道那个width属性

很多浏览器在显示未指定width的float元素时会有bug,所以不管float元素的内容如何,一定要为其制定width属性。(注意:制定元素时尽量使用em而不是px)(3)float元素不能指定margin和padding的属性

ie在显示指定了margin和padding的float元素时有bug。你可以再float元素内部嵌套一个div来势之margin和padding,也可以使用hack方法为ie指定特定的值。

(4)float元素之核的宽度要小于100%

如果float元素的宽度和正好等于100%,为保证大多浏览器显示正常,要是宽度之和小于100

2、margin加倍的问题。

设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。

解决方案是在这个div里面加上display:inline;

margin:5px;/*IE下理解为10px*/

display:inline;/*IE下再理解为5px*/

3、ie6中莫名出现多余的字符

我遇到的现象是:ie6下有些问题,重复出现在第二行,就是某些段落或某些文字的末尾N个字符,他另起一行重复出现,在选选着重复出现的文字时,原有的文字也被选中

解决方法:很简单,在重复出现文字的末尾补N个 ;就可以。

4、ie7中正常,但ie8中不正常,div的位置position:absolute在ie8中不起作用

解决方法:设置html兼容ie7,在head下加

content=”ie=7”>

5、针对ie

6、ie

7、火狐浏览器

(1)Ie6 、FF对!important;测试正常

Ie7对!important;可以正确解释。

为了使他们都正常:

#style1{color:#333;} FF正常显示#333;

*html #style1{color:#666;} ie6显示#666

*+html #style1{color:#999;} ie7显示#999

*+html与*html是ie特有的标签,firefox暂不支持,而*+html又为ie7特有的标签。

注意:顺序不能错了。

(2)FF: 链接加边框和背景色,需设置display: block, 同时设置float: left 保证不换行。

参照menubar, 给 a 和menubar 设置高度是为了避免底边显示错位, 若不设height,

可以在menubar 中插入一个空格。

(3)在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法:

div{margin:30px!important;margin:28px;}

注意这两个margin的顺序一定不能写反,据阿捷的说法!important这个属性IE不能识别,但别的浏览器可以识别。所以在IE下其实解释成这样:

div{maring:30px;margin:28px}

重复定义的话按照最后一个来执行,所以不可以只写margin:XXpx!important;

(4)IE5 和IE6的BOX解释不一致

IE5下

div{width:300px;margin:0 10px 0 10px;}

div的宽度会被解释为300px-10px(右填充)-10px(左填充)最终div的宽度为280px,而在IE6和其他浏览器上宽度则是以300px+10px(右填充)+10px(左填充)=320px来计算的。这时我们可以做如下修改

div{width:300px!important;width /**/:340px;margin:0 10px 0 10px}

注释:这个问题是看别人写的觉得不错就记下来了,但关于这个/**/是什么我也不太明白,只知道IE5和firefox都支持但IE6不支持,如果有人理解的话,请告诉我一声,谢了!

太晚了,要睡觉了,就先写这些吧,有时间会继续补充的。

相关文档
最新文档