22 BFC

2018-11-19  本文已影响0人  晚溪呀

一、BFC是什么?

1.`它是 Block Formatting Context (块级格式化上下文) 的简称。

2. BFC 是指一个独立的块级渲染区域,只有Block-level Box参与,该区域拥有一套渲染规则来约束块级盒子的布局,且与区域外部无关。
BFC就是一种布局方式,可以理解为一个作用范围,即在一个BFC里的布局与其之外的布局不相关或者说不相互影响。

3. 举一个形象的例子:
可以把一个页面想象成大的集装箱,这个集装箱里装的货物就是 html元素。在现实生活中为了避免不同人的货物相互混淆,都是把货物打好包装再装入集装箱,这样的话无论你包装里面的货物怎么摆放,都不会影响到其他人的货物。那么这个包装就可以被想象成 Block Formatting Context。

4. 为什么要用BFC?
使用一定的CSS声明可以生成BFC,浏览器对生成的BFC有一系列的渲染规则,利用这些渲染规则我们可以达到一定的布局效果,为了达到特定的布局效果我们让元素生成BFC。

二 生成BFC的方式

当一个HTML元素满足下面条件的任何一点,都可以产生 Block Formatting Context根元素

float的值不为none;

overflow的值不为visible(可以为hidden,scroll,auto);

display的值为inline-block,table-cell,table-caption,flex,inline-flex中的任何一个;

position的值为absolute,fixed(不为static,relative中的任何一个);

display:table也认为可以生成BFC,其实这里的主要原因在于table会默认生成一个匿名的table-cell,正是这个匿名的table-cell生成了BFC。

常用的用来触发BFC的CSS样式:
overflow: scroll,overflow: hidden,display: flex, float: left,display: table

其中可能产生的一些问题

display:table —— 可能会产生一些问题

overflow:scroll —— 可能会显示不必要的滚动条

overflow:hidden —— 将会剪切掉溢出的元素

float:left —— 将会把元素置于容器的左边,其他元素环绕着它

三、 BFC作用

image.png image.png

效果图!


image.png
上一篇下一篇

猜你喜欢

热点阅读