BFC

bfc

Posted by Lan on July 11, 2019

BFC

就是一种web页面中盒模型布局的css渲染模式,

BFC相当于一个盒子,是一个独立的容器,其内部元素与外部元素互不干扰。

BFC的特点

  1. BFC中的内容是一个独立的区域,不影响外部
  2. 计算BFC的高度时要算上浮动元素
  3. 同一个BFC中的元素可能会发生高度坍塌
  4. 浮动盒子与BFC相互不影响,不会叠加到BFC上
  • 计算BFC的高度时要算上浮动元素,使得BFC内部的浮动元素不会到处乱跑(float溢出父元素的情况)

    • 没有bfc时,float元素会脱离文档流,乱跑

    • 在外部用display:inline-block添加BFC

  • 同一个bfc里的盒子会相互影响,可能发送margin-collapse

    • 没有bfc时,margin发生坍塌

    • 在第二个元素外面添加bfc,避免margin collapse

  • float元素不会与BFC重叠

    • 没有BFC时,添加float元素

    • 添加BFC,效果

在实际应用时:

其实就是通过修改css属性,创建一个BFC,产生一个独立的盒子,以解决如float溢出的的情况等。

创建BFC的方法

mdn上有,这里就不照抄了

举例几个经典的:

  • float 有值且不为none时
  • overflow的值不是visible时
  • 其他的详见mdn https://developer.mozilla.org/zh-CN/docs/Web/Guide/CSS/Block_formatting_context