BFC只有特性(功能),没有定义,其实就是一些给CSS规则的异常擦屁股的东西。
BFC 特性(功能)
- 两个上下div外边距会发生折叠,加一层BFC包裹可以避免边界重叠
- 使 BFC 内部浮动元素不会到处乱跑;
- 和浮动元素产生边界。
- 但是 解决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隔离开