浏览器兼容问题与解决方法

2017/2/22 13:46:58   阅读:2120    发布者:2120

浏览器兼容问题是指,不同厂商开发的浏览器针对同一段代码的不同解析,
造成页面展示效果出现差异的情况,很多时候为了追求显示效果的一直,
前端开发人员就要针对不同兼容问题应用相应的方法处理,
达到效果一致的目的。

下面这些是平时开发过程中遇到的,做个汇总,方便查阅。

1、<!DOCTYPE HTML>文档类型的声明

产生条件:IE6浏览器,当我们没有书写这个文档声明的时候,
会触发IE6浏览器的怪异解析现象;
解决办法:书写文档声明。
2、横向双外边距
产生条件:在IE6中块元素浮动后(左浮左margin,右浮右margin),
会出现横向双倍margin现象。
解决办法:在float标签的样式控制中加入display:inline,
或者左幅右margin,右浮左margin。
3、默认行高
产生条件:IE6\IE7遨游浏览器;设置的文字高度超出盒模型内容
区域设置的高度时会影响布局。
解决办法:给超出高度的标签设置overflow:hidden;
或将文字的行高line-height设置为小于块的高度
4、不同浏览器当中,很多的标签的默认样式不同,如默认的外补丁内补丁。
产生条件:不同浏览器
解决方法:利用CSS reset文件进行样式的清除,然后在根据需要进行设置。
5、img外部的border
产生条件:img外部有a标签,即img标签有链接时
解决办法:设置img边框border:0;
6、经典3像素bug
产生条件:IE6浏览器,浮动块元素与未浮动块元素处于同一行,有默认的3px间距。
解决办法:设置非浮动元素浮动。
7、png格式图片
产生条件:IE6浏览器,不支持透明;
解决办法:使用JavaScript进行处理;或者使用GIF、JPG图像替代掉png图片的使用。
8、默认行高
产生条件:清浮动的时候,有些人会采取一种清浮动的方法,使用一个空的div,
然后为这个div设置{clear:both}。在大部分浏览器当中,这样做是没有任何问题的,
但是在IE6浏览器当中,div即使是空的,也会存在默认行高。
解决方法:设置其高度为0,并设置overflow:hidden。{height:0;
overflow:hidden;clear:both;}