CSS中高度塌陷问题
一.高度塌陷产生原因: 父元素在文档流中高度默认是被子元素撑开的,当子元素脱离文档流以后,将无法撑起父元素的高度,也就会导致父元素的高度塌陷 二.造成后果: 父元素的高度一旦塌陷,所有标准流中元素的位置将会上移,导致整个页面布局混乱 三.解决方案: 1.开启父元素的BFC: (1)Block Formatting Context 块级格式化环境 (2)BFC是元素的隐含属性,默认是在关闭状态的 (3)可以通过一些特殊的样式,来开启BFC (4)开启BFC后元素具有如下特性: 父元素的垂直外边距不会与子元素重叠 开启BFC的元素不会被浮动元素所覆盖 开启BFC的元素可以包含浮动子元素 (5)开启BFC的方式有: 设置元素浮动 设置元素的浮动定位 设置元素的类型为inline-block 设置overflow为一个非默认值,一般用overflow:hidden开启BFC 2.在塌陷的父元素最后添加一个空白的div,然后对该div进行清除浮动: (1)代码示例: <div id="box1"> <div id="box2"></div> <div style="clear:both"></div> </div> (2)存在问题:使用这种方式会在页面中添加多余的结构 (3)清除浮动: 有时希望清除掉其他元素浮动对当前元素产生的影响,可以用clear来完成功能