浏览器的一些兼容

IE6兼容性;

不同的浏览器的默认margin和padding是不同的,所以要清楚样式。

1、横向双倍bug:

    产生条件:

	1、IE6  2、块属性  3、float  4、有横向margin

解决方法:破除一个条件,display:inline;

2、塌陷:

父元素的第一个子元素设置margin时,父级元素和子元素一起向下;

解决方法:1:浮动或者给父元素设置overflow:hidden;
		
	  2:对父元素使用padding;

	  3:对父元素设置边框进行隔离;

3、IE6默认有行高:(即使设置height:0px,也没有效果);

解决方法:设置一条属性:overflow:hidden;

4、img之间有空隙:

解决方法:图片浮动;或者让图片之间没有空格;

5、a标签嵌套img是有颜色边框:

解决方法:img加上border:none;或者border:0;

6、父标签高度为0;

解决方法:清除浮动、overflow:hidden 、设置高度;

7、盒模型:

ie里面会产生怪异盒模型;

普通浏览器使元素产生怪异盒模型的方法:box-sizing:border-box;

8. ie6 不支持透明的png图

产生条件:
	ie6 浏览器
	使用png图片
解决方法:
	使用jpg,gif图代替png图
	使用javascript进行处理

9. 默认高度

产生条件:
ie6
块元素
没有写固定高
解决方案:
设置固定高/height:0;

10.经典3像素bug

产生条件:
	IE6浏览器,
	浮动块元素与未浮动块元素处于同一行
解决办法:
	设置非浮动元素浮动。
	_margin-left:-3px;或者_margin-right:-3px;

11.透明rgba与opacity与filter

产生条件:
	IE6,IE7,IE8不支持此两种透明的设置方法;
解决办法:
	使用IE6当中的滤镜filter替代掉,如:opacity:0.6;filter:alpha(opacity=60)。

12. 不支持最大最小宽高

产生条件:
	IE6浏览器,
	标签的最低高度/宽度设置(min/max-width/height)
解 决办法:
	为IE6单独设置hack,即_height:最小高度值;_width:最小宽度值(对于IE6,当实际宽高			超出定义的宽高时,元素会自动调整 宽高)。
	对于最大高度和最大宽度,没有必要设置兼容,当前对于开发者来说,只需要保证IE6下正				常显示即可,无需在它身上花费太多功夫。

13.子选择器在IE6中不能使用

产生条件:
	IE6浏览器,
	使用E>F子选择器;(一级子元素)
解决办法:
	采用其他选择器或者采用后代选择器进行控制,
		如:div p{margin:10px;} div p p{margin:0;}
		替代掉 div>p{margin:10px;}。
posted @ 2016-10-28 16:53  Vins·lu  阅读(287)  评论(0)    收藏  举报