常见浏览器兼容性

来源:互联网 发布:算法竞赛入门经典 白书 编辑:程序博客网 时间:2024/06/16 11:49

1、浏览器默认的margin和padding不同:

解决方案是加一个全局的*{margin:0;padding:0;}来统一。

2、IE6双边距bug:块属性标签float后,又有横行的margin情况下,在ie6显示margin比设置的大:

解决方案是在float的标签样式控制中加入 display:inline;将其转化为行内属性。

3、在ie6,ie7中元素高度超出自己设置高度。原因是IE8以前的浏览器中会给元素设置默认的行高的高度导致的:

解决方案是加上overflow:hidden或设置line-height和font-size为更小的高度。

4、min-height在IE6下不起作用:

解决方案是添加 height:auto !important;height:xxpx;其中xx就是min-height设置的值。

5、透明性IE用filter:Alpha(Opacity=60),而其他主流浏览器用 opacity:0.6;

6、a(有href属性)标签嵌套下的img标签,在IE下会带有边框:

解决办法是加上a img{border:none;}样式。  

7、input边框问题。去掉input边框一般用border:none;就可以,但由于IE6在解析input样式时的BUG(优先级问题),在IE6下无效。

  ie6的默认CSS样式,涉及到border的有border-style:inset;border-width:2px;浏览器根据自己的内核解析规则,先解析自身的默认CSS,再解析开发者书写的CSS,达到渲染标签的目的。IE6对INPUT的渲染存在bug,border:none;不被解析,当有border-width或border-color设置的时候才会令IE6去解析border-style:none;。

  解决方案是用:border:0或border:0 none;或border:none;border-color:transparent;推荐用第三种方案。

8、父子标签间用margin的问题,表现在有时除IE(6/7)外的浏览器子标签margin转移到了父标签上,IE6&7下没有转移。

解决办法就是父子标签间的间隔建议用padding,兄弟标签间用margin。

9、假设两块div,第一块浮动而第二块没有浮动,IE6下第二块就会跑到第一块边上,并且二者之间还留有间距,但标准浏览器中是第二块重合于第一块。

10、父子关系的标签,子标签浮动导致父标签不再包裹子标签。

决办法就是

.parent{

zoom:1;/*--for IE--*/

}

.parent:after{ /*--for other broswer--*/

content:"";

display:block;

clear:both;

}

11、css属性中有小数点:IE6、7都向下取整、IE8<=.5向下取,>.5是向上取、IE9是四舍五入,其他正常。

原创粉丝点击