高度塌陷问题
高度塌陷问题
描述1:如果父元素只包含浮动元素,且父元素未设置高度和宽度,那么它的高度就会塌缩为零,也就是所谓的“高度塌陷”。
描述2:在文档流中,父元素的高度默认是被子元素撑开的,也就是子元素多高,父元素就多高。但是当子元素设置浮动之后,子元素会完全脱离文档流,此时将会导致子元素无法撑起父元素的高度,导致父元素的高度塌陷。
解决“高度塌陷”问题的方法:
1.浮动父级元素,父级元素的高度就会扩大,直到完全包含它里面的浮动元素。如果使用这种方法,一定要在该元素的
下个元素添加clear:both,确保浮动元素落到父级元素的下方。
2.使用overflow:hidden,zoom:1 。overflow:hidden属性会强制父级元素扩大到包含浮动元素,zoom:1只是触发ie6
的hasLayout模式,不会对其他浏览器产生影响。
{
overflow:hidden;
zoom:1;
}
3.使用:after伪类清除,不会影响其他任何样式,通用性强。
.clearfix{
zoom:1;
}
.clearfix:after{
content:'';
display:block;
height:0;
clear:both;
overflow:hidden;
}