🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 什么是 BFC 块级格式化上下文 - 独立的渲染区域 ## BFC 触发条件 * float 不为 none * overflow的值不为 visible * position 为 absolute 或 fixed * display的值为 inline-block 或 table-cell 或 table-caption 或 grid ## BFC 布局规则 * 内部的box会在垂直方向,一个接一个的放置 * Box垂直方向的距离由margin决定。属于**同一个**BFC的两个相邻Box的margin会发生重叠* * 每个盒子的margin box的左边,与包含块border box的左边相接触(对于从左往右的格式化,否则相反)。即使存在浮动也是如此。 * BFC的区域不会与float box重叠。 * 计算BFC的高度时,浮动元素也参与计算。 ## 用途 1. 利用BFC避免margin重叠。 2. 自适应两栏布局 ![](https://img.kancloud.cn/e4/e5/e4e50df52e2f0556e6ca900d6a9732b5_2027x913.png) 把right 放在一个单独的BFC中,BFC的区域不会与float box重叠 ![](https://img.kancloud.cn/39/27/3927bea09da91276f2f75c74f2de95a7_1994x996.png) 3. 清除浮动(因为计算BFC的高度时,浮动元素也参与计算。) 不给父节点设置高度,子节点设置浮动的时候,会发生高度塌陷,这个时候我们就要清除浮动