BFC是什么?
BFC(Block Formatting Context)块级格式化上下文,也是CSS一种盒模型渲染样式,w3c定义只要满足一下条件之一,就能创建一个BFC:
1.float属性不为none;
2.display属性值不为static和relative;
3.display属性为以下之一:table-cell,table-caption,inline-block,flex,inline-flex;
4.overflow属性不为visible。
解决了什么问题?
创建一个BFC很简单,只需包含上文定义中的4点任意一个就OK,来看看能解决什么问题:
1.解决外边距折叠
|
|
|
|
2.用于清除浮动
|
|
|
|
3.多列布局中避免折行显示
|
|
由于浏览器舍入规则,子元素的宽度可能会超过容器总宽度,将会导致折行:
|
|
总结
BFC就是通过创建一个新的盒模型,使之脱离原本的布局限制,达到互不影响布局的效果。创建BFC 可以通过以上4种方式达到。