首先BFC的英文全称Block Format Context,也就是块级格式化上下文。css
首先,咱们你们都知道的BFC特性:html
BFC
的区域不会与float box
重叠。下面也是你们都熟悉的建立BFC的方法api
table-cell
,table-caption
,inline-block
,flex
,inline-flex
,flow-root
其中最后一个为专门建立BFC的属性absolute
,fixed
从实例1能够看到特性1,内部元素会从顶部一个接一个的放置,而且属于同一个BFC的两个相邻的margin会发生重叠。如何解决边距重叠的问题呢?此时咱们须要给元素套上一个父元素,将父元素变成BFC。flex
实例code
这样即可以解决边距重叠问题。orm
从实例2上能够看到,元素的外边距会触碰到包含块容器的外边框,也就是元素左边与容器左边相接触,与浮动元素发生了重叠。htm
当右面元素触发BFC的时候,不会与左面元素发生重叠,见实例ci
当两个子元素都进行浮动时,此时父元素的高度会消失,第六个特性,计算BFC的高度时,浮动元素也会参与计算,此时咱们触发父元素的BFC。实例get
此时发现高度会从新被撑开,因此计算BFC的高度浮动元素也会参与计算it