兼容性总结

1. ie6下的margin双边距问题:在ie6下快属性标签设置了float,在float方向上设置margin,就会出现双倍margin的问题

   解决方案: (1) 给float元素设置 display:inline;  (2) hack处理:对IE6进行_margin-left:margin值 处理     .box{margin-left:20px;_margin-left:20px;}

注解:  css hack是通过在css样式中加入一些特殊的符号,让不同的浏览器识别不同的符号(什么样的浏览器识别什么样的符号是有标准的,css hack就是让你记住这个标准),从而达到应用不同css样式的目的    

2. 当标签的高度设置小于10px时,在IE6和IE7中会超过设置的最小高度

  解决方案:设置overflow:hidden  或者 line-height设置成小于设置的高度值

3. 行内标签为了设置宽高会设置成display:block,这样一来就会产生上面说的双边距问题

  解决方法:设置成display:inline,但是这样就不能设置宽高 ,所以在添加一个display:table

4. 上下margin重叠问题,当相邻的两个元素都设置了上下margin后,会取最大值,舍弃最小值

5. 两个块级元素, 父元素设置了overflow:auto,子元素设置了position:relative,且高度大于父集高度,在IE6和IE7下会被隐藏而不溢出

  解决方法:父集元素添加position:relative

6. chrome下默认会将小于12px的文本强行按照12px进行解析

  解决方法:添加属性:-webkit-text-size-adjust:none         

7. IE6下div高度无法小于19px, 小于19px会被当做19px来处理

  解决方法:(1)添加overflow:hidden属性;  (2)设置font-size大小为高度大小

8: png24位的图片在IE6下回出现背景,最好使用png8格式的

9.  盒模型问题 ( 在IE下不设置文档声明 会进入怪异盒模型解析 )

  标准盒模型width是内容宽              可视宽 = width + padding + border

  怪异盒模型width是可视宽              内容宽 = width  - padding  - border

10.  ie6下不支持1px的点线

  解决方法: 切图 用背景代替(平铺)

11.  ie6和ie7下li本省没有浮动,但是li里面的内容(两个或两个以上都浮动,如果只有一个浮动不会出现,但是会折行)浮动, li 下面就会产生几像素的间隙

  解决方法:   给 li 加float

        给 li 添加样式 :  vertical-align: top

12. ie6下 浮动元素和绝对定位(absolute)元素是并列关系的时候,绝对定位元素会消失

  解决方法 : 用div把绝对定位元素包起来

13. ie6和ie7下元素有相对定位(relative), 父集的overflow对他是不起作用的

  解决方法: 给父级也添加以一个相对定位(relative)

14. ie6下当一行的子元素所占宽度之和和父级的宽度相差超过或等于3px,或者有不满行状态的时候,最后一行下的margin就会失效

  解决方法: 暂时无解

15. ie6下绝对定位(absolute)元素父级的宽(高)是奇数的话,rigth和bottom会有1px的偏差

  解决方法:

16: ie6和ie7下输入型的input上下会有1px的间隙,而且还会撑开设置好的高度

  解决方法: 给input加浮动

17. ie6和ie7下输入类型的表单控件,border:none无效

  解决方法: 背景重置

原文地址:https://www.cnblogs.com/ly-qingqiu/p/10871219.html