今天想给大家分享一下有关于BFC的一些知识,作为我上个星期在逆战班所学到的知识总结。
BFC是H5里一个非常重要的知识点,我们来简单了解一下。
什么是BFC
首先:什么是BFC呢?
BFC是Block formatting context的缩写,直译为“块级格式化上下文”。简单来说,就是它是一个独立的渲染区域,只有Block-level box参与,它规定了内部的Block-level Box如何布局,并且与这个区域外部毫不相干。
BFC的布局规则
那么说完什么是BFC,我们再来简单说一下BFC的布局规则,这里有六条,我来简单介绍一下:
1:内部的Box会在垂直方向,一个接一个地放置。如图:
2:Box垂直方向的距离由margin决定。属于同一个BFC里的两个相邻的Box的margin会发生重叠。如图:
上面这张图,我给上面的box设置了mrgin-bottom:50px;下面的box设置了margin-top:50px;但是他们之间的间距就只有50px;
注意:重叠后会以两个margin里的最大值来显示。
3:每个元素的margin box的左边,与包含块border box的左边相接触。如图:
4:BFC的区域不会与float box 重叠。如图:
上图左右两边的box全部是浮动元素,不会覆盖中间的box。
5:BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。如图:
6:计算BFC的高度时,浮动元素也会参与计算。
BFC的触发条件
那么BFC是如何才能触发的呢?有如下几种条件:
1:根元素(html)
2:float属性不为none
3:position为absolute或fixed
4:display为inline-block,table-cell,table-caption,flex,inline-flex
5:overflow不为visible
结语
BFC在H5中的应用还是很广泛的,比如自适应两栏布局,清楚内部浮动,防止margin上下重叠等等,所以我们一定要努力的理解并掌握它,让我们随着逆战班一起加油前进吧!
来源:CSDN
作者:H5sui20
链接:https://blog.csdn.net/H5sui20/article/details/104574111