BFC(block Format ting Context)块级格式化上下文
BFC是一个独立的布局环境,其中的元素布局是不受外界的影响,并且在一个BFC中,块盒与行盒(行盒由一行中所有的内联元素所组成)都会垂直的沿着其父元素的边框排列。
W3C的解释是:
它决定了元素如何对其内容进行定位,以及与其他元素的关系和相互作用,当涉及到可视化布局的时候,BFC提供了一个环境,HTML元素在这个环境中按照一定规则进行布局。
产生BFC的方法:
1.float 有值且不能为空(浮动元素的float不是none)
2.overflow有值且不为visible的块元素
3.display有值为:inline-block , table-cell , flow-root , table-caption , inline-flex 中的一个
4.绝对定位元素:positon 有值为absolute或者fixed
解决的问题:
避免外边距折叠
避免文字环绕
包含浮动元素,让浮动元素不会乱