兼容问题 css的常见问题

兼容问题  css的常见问题

 

1、IE6.7不兼容H5标签 eg:<header></header>   <section></section>

解决办法一:创建自定义元素,并把元素display设置为block

<style>

header,section{display:block}

</style>

<script>

  document.createElement(“header”);

document.createElement(“section”);

</script>

解决办法二:引入成熟的js库<script src=“html5shiv.js”></script>

 

2、元素浮动后,能设置宽度的话就给元素设置宽度,如果需要宽度是由内容撑开,就给它里面的块元素加上浮动(需要让谁去浮动,让谁去自适应,就给谁加浮动)

 

3、第一块元素浮动,第二块元素加margin值,那么在IE6下会有间隙问题

解决办法:1、不建议这么做

2、用浮动解决(给第二块元素也加浮动,并去掉margin值)

 

4、IE6下子元素超出父级宽高,会把父级的宽高撑开

解决办法:1、不要让子元素的宽高超过父级

 

5、p包含块元素的嵌套规则

下列元素是块元素不能再嵌套块元素:p、td、h1~h6

 

6、margin兼容性问题:1、margin-top传递   解决办法:触发BFC以及hasLayout  标准浏览器下加给父级加边框   IE6、7加zoom:1

 

  2、同级元素 上下margin叠加  解决办法:尽量设置同一方向的margin,比如都设置top

 

7、display:inline-block 在IE6、7下无效,解决办法:*display:inline ; *zoom:1;      *是hack,针对不同浏览器不同的css样式的过程加css hack

 

8、IE6的最小高度是19px     解决办法:overflow:hidden;

 

9、IE6的双边距问题:给元素加上浮动后设置margin-left,IE6、7下会产生双倍边距   解决办法:*display:inline;

 

10、li里的元素都浮动,在IE6、7下会产生4px间隙的问题   解决办法:针对IE6、7给li添加*vertical-align:top;

 

11、两个浮动元素之间有注释或有内联元素,并且和父级宽度相差不超过3像素,会出现多复制一个文字的问题

解决办法:1、避免两个浮动元素之间出现注释或内联元素

2、与父级宽度之差超过3像素以上

 

12、IE6、7父级元素的overflow:hidden是包不住子集的relative

解决办法:给父级加上relative

 

13、IE6下绝对定位元素父级宽高是奇数,绝对定位元素的right和bottom值会有1px的偏差   解决办法,避免父级宽高是奇数

 

14、IE下绝对元素和浮动元素并列,绝对元素消失   解决办法:让两个元素不处于同级

 

15、IE6下input的空隙问题   解决办法,给input加float

 

16、IE6下输入类型表单控件背景问题

 

posted @ 2017-05-02 14:57  Lu_Lu陌鹿  阅读(144)  评论(0编辑  收藏  举报