BFC

138 阅读1分钟

触发BFC的条件

  1. float的值不是none
  2. postiton的值不是absolute或fixed
  3. display的值是inline-block、text-cell、flex、table-caption或inline-flex
  4. overflow的值不是visible
  5. 根元素或其他包含它的元素

BFC特点

  1. 根元素或默认创建一个BFC
  2. 每个元素的margin box的左边会与包含块border box的左边相接触(对于从左到右的格式化,否则相反),即使存在浮动也会如此。
  3. 创建BFC的元素不会与浮动元素重叠(清除浮动)
  4. 容器有足够的剩余空间容纳BFC宽度的时,所有浏览器都会将BFC放置在浮动元素所在行剩余的空间内
  5. CSS规定,在计算生成了BFC的元素的高度的时候,其浮动子元素应该参与计算
  6. Box垂直方向的距离由margin决定,属于同一个BFC的两个相邻的box的margin会发生重叠(防止margin重叠)
  7. BFC就是页面上一个隔离的独立容器,容器里面的子元素不会在布局上影响到外面的元素,反之也是如此 (重要)