BFC

117 阅读1分钟

BFC只有特性(功能),没有定义,其实就是一些给CSS规则的异常擦屁股的东西。

BFC 特性(功能)

  1. 两个上下div外边距会发生折叠,加一层BFC包裹可以避免边界重叠
  2. 使 BFC 内部浮动元素不会到处乱跑;
  3. 和浮动元素产生边界。
  • 但是 解决margin重叠的时候,在子元素或是父元素加overflow:hidden都没得效果,在子元素外面再包裹一层div+overflow有用

如何变成BFC

BFC模型就是特殊属性下的盒式模型,我们可以通过在盒式模型的CSS中添加属性,使得一般的BOX模型变为BFC模型

html元素

float不为none的元素

position为absolute或者fixed的元素

display为inline-block, table-cell, table-caption, flex, inline-flex的元素

overflow不为visible的元素

BFC 不与浮动元素重叠(清除浮动)

浮动元素 脱离文档流,会覆盖到其他元素,但是其他元素的文本信息不会被浮动元素所覆盖

为什么overflow:hidden可以起到清除浮动的效果?因为触发了新的BFC区域,和其他的BFC隔离开