CSS的margin失效塌陷和兼容问题
Posted 一杯清泉
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSS的margin失效塌陷和兼容问题相关的知识,希望对你有一定的参考价值。
一、margin塌陷
在标准文档流中,竖直方向的margin不叠加,以较大的为准,水平方向不影响,可以叠加。注意是标准文档流,不是标准文档流不存在塌陷现象。
二、margin居中
- 使用margin: 0 auto;的盒子,必须有width,有明确的width。
- 只有标准流的盒子才能使用margin: 0 auto;居中。浮动、固定定位绝对定位的盒子不可以。
- margin: 0 auto;是居中盒子,不是居中文本,文本使用text-align:center;
margin:0 auto; 自己在父容器内部居中
text-align:center; 容器内的文本居中
三、margin不生效
<div>
<p></p>
</div>
要想使p的margin生效,需要给父布局的div添加border,否则margin无效。margin表示兄弟和兄弟之间的距离,最好不要使用margin表示父子之间的距离,要善于使用padding。
div
width: 300px;
height: 300px;
background: darkblue;
border: 5px solid red;
p
width: 100px;
height: 100px;
background: white;
margin-top: 30px;
四、margin的IE6兼容问题
1、margin双倍问题
浮动方向和margin方向相反,左浮动+右margin
2、IE6的三像素bug
不用管,出现了说明代码不准备,不允许父子关系使用margin,要使用padding替代margin。
五、其他兼容性问题
1、IE6不支持小于12px的盒子,解决方案,设置一个字号小于12px
<div></div>
div
width: 700px;
height: 4px;
font-size: 4px;
background-color: red;
2、浏览器hack
下划线是IE6的专有符号,其他浏览器不认识不渲染,例如:_background-color
div
width: 700px;
height: 4px;
_font-size: 4px;
background-color: red;
3、IE6不支持overflow:hidden,需要加上_zoom
div
overflow: hidden;
margin-top: 10px;
_zoom: 1
IE6的实现机制。
以上是关于CSS的margin失效塌陷和兼容问题的主要内容,如果未能解决你的问题,请参考以下文章