20个css常见问题以及兼容性问题汇总——2018-02-06

2018-02-06  本文已影响0人  不2青年

一、在IE6下,内容会撑开设置好的宽高

解决办法:计算一定要精确 不要让内容的宽高超出我们设置的宽高

二、在IE6元素浮动,如果宽度需要内容撑开,就给里边的块元素都加浮动;

三、在IE6下,想要通过浮动使元素同行显示,则给元素都加浮动;

四、注意标签嵌套规范;

例如:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<style>
p{width:100px;height:100px;background:Red;}
</style>
</head>
<body>
<p>
    <h3></h3>
</p>
</body>
</html>
效果图: 嵌套不规范.png

五、IE6的最小宽度问题

在IE6下元素的高度的小于19px的时候,会被当做19px来处理;
解决办法:

overflow:hidden;

六、IE6不支持1px的虚线边框

解决办法:切背景图平铺;

七、在IE6下父级有边框的时候,子元素的margin值消失

解决办法:
解决办法:触发父级的haslayout——给父级加上zoom:1;或者宽高;

八、IE6下双边距BUG

在IE6,块元素有浮动和和横向的margin值 ,横向的margin值会被放大成两倍

解决办法:

display:inline;

九、IE6下块元素同行显示且都有左边距或右边距时:

    margin-right 一行右侧第一个元素有双边距

    margin-left 一行左侧第一个元素有双边距

十、在IE6,7下,li本身没浮动,但是li的内容有浮动,li下边就会产生一个间隙

解决办法:
1.给li加浮动
2.给li加vertical-align
当IE6下最小高度问题,和 li的间隙问题共存的时候 给li加浮动

十一、当一行子元素占有的宽度之和和父级的宽度相差超过3px,或者有不满行状态的时候,最后一行子元素的下margin在IE6下就会失效;

注意:尽量避免,无很好的解决办法;

十二、在IE6下的文字溢出BUG

当 子元素的宽度和父级的宽度相差小于3px的时候,并且两个浮动元素中间有注释或者内嵌元素时文字会溢出。
解决办法:用div把注释或者内嵌元素用div包起来;

十三、当浮动元素和绝对定位元素是并列关系的时候,在IE6下绝对定位元素会消失

解决办法:给定位元素外面包个div;

十四、在IE6,7下,子元素有相对定位的话,父级的overflow包不住子元素

解决办法、给父级元素加相对定位;

十五、在IE6下绝对定位元素的父级宽高是奇数的时候,元素的right值和bottom值会有1px的偏差

注意:尽量避免奇数的像素;

十六、IE6不兼容固定定位

十七、在IE6下tr的样式会覆盖掉tbody、thead的样式

注意:不要给除了table,th,td以外的表格标签加样式;

十八、在IE6,7下输入类型的表单控件上下各有1px的间隙

解决办法:给input加浮动;

十九、在IE6,7下输入类型的表单控件加border:none;无效

解决办法:重置input的背景;

二十、在IE6,7下输入类型的表单控件输入文字的时候,背景图片会跟着一块移动

解决办法: 把背景加给父级

上一篇下一篇

猜你喜欢

热点阅读