BFC
BFC 全称 Block Formatting Context。
触发 BFC 的元素会变成一个独立的盒子,这个独立盒子里的布局不受外部影响,也不会影响到外面的元素。
部分可以产生 BFC 的方法:
-
float: left;
-
float: right;
-
position: absolute;
-
position: fixed;
-
display: inline-block;
-
display: flex;
-
display: inline-flex;
-
display: flow-root;
-
overflow: hidden;
-
overflow: auto;
-
overflow: scroll;
BFC 的功能:
-
给父级元素【清除浮动】,避免高度塌陷。(即用 BFC 包住浮动元素,有一种说法是只有clearfix 才是清除浮动)
-
防止垂直方向的【 margin 合并】(其实处理父子 margin 合并也有一种非 BFC 的方案是在父元素添加一个 border-top)。
-
在【自适应两栏布局】中,可以用 BFC 避免浮动兄弟元素的遮盖。