高度塌陷问题
在元素布局时,父元素如果没设置高度,那么它的高度默认是被子元素撑开的。当子元素浮动后,其会完全脱离文档流,导致的结果就是无法撑起父元素的高度,则父元素的高度丢失。父元素高度丢失以后,其下的元素会自动上移,导致页面的布局混乱。所以高度塌陷是浮动布局中比较常见的一个问题,我们必须对其进行处理。
BFC(Block Formatting Context)块级格式化上下文
- BFC是CSS中的一个隐含的属性,为元素开启BFC后,该元素会变成一个独立的布局区域
- 开启BFC后的特点:①开启BFC的元素不会被浮动元素所覆盖(默认情况下,元素浮动后,后面的元素会自动上移,则会覆盖后面的元素);②开启BFC的元素,子元素和父元素的外边距不会重叠(之前会有外边距重叠问题,就是当子元素的上外边距和父元素的上外边距是同一个时,子元素设置上外边距,不是对自己生效,而是对父元素生效);③开启BFC的元素可以包含浮动的子元素,解决高度塌陷问题。
- 可以通过一些特殊方式来开启元素的BFC:①设置元素浮动(不推荐);②将元素设置为行内块元素(不推荐);③将元素的 overflow 设置为一个非 visible 的值。(常用方式:为父元素设置
overflow: hidden;
来开启其BFC,使其可以包含浮动的子元素)。