谈谈BFC

本文详细解释了BFC(BlockFormattingContext)在CSS布局中的作用,包括其定义、形成条件、盒子渲染规则以及应用场景。重点讲解了BFC如何影响盒子间的间距、浮动元素和标准流,以及如何利用BFC实现特定布局效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、BFC(Block Formatting Context)

二、在什么情况下形成BFC(包含不限于)

三、BFC空间中的盒子渲染规则(包含不限于)

四、应用场景


一、BFC(Block Formatting Context)

      BFC(Block Formatting Context):格式化上下文,是Web页面中块级盒模型布局的CSS渲染模式,指一个独立的渲染区域或者说是一个隔离的独立容器。

     盒子分为标准流盒子和非标准流盒子(浮动、定位),添加BFC后的盒子是标准流的盒子。

     以下遇到的现象便和BFC有关:

1、当父盒子中的所有子盒子脱离标准流后高度变成0px

2、两个标准流(或者同时添加float:left浮动)盒子添加margin属性,距离不是两个值之和而是较大值作为两个盒子的距离

3、浮动盒子会覆盖标准流盒子,而想让浮动盒子不覆盖标准流盒子,且存在一定间距

4、给子盒子添加margin值,动的是父盒子距离

二、在什么情况下形成BFC(包含不限于)

1、HTML标签包裹的空间

2、为盒子添加一下任一样式:

【1】float 添加除了none以外的值

【2】position 添加absolute | fixed

【3】display 添加inline-block | table-cell | table-caption | column-span | flow-root(css3规范)等

【4】overflow 添加除了visible以外的属性

三、BFC空间中的盒子渲染规则(包含不限于)

1、在BFC盒子布局中,元素按照先后顺序自上而下布局,行内、行内块元素一行显示知道把当行占满然后换行,块级元素自占一行;默认都是标准流 

2、每个元素的左外边距与包含块的左边界相接触(从左到右),即使浮动元素也是如此   

2、盒子上下的距离是由margin决定的,

3、margin值会出现重合的现象

4、标准流不会被脱离标准流的盒子覆盖

5、父盒子会将浮动的子盒子的高度参与计算

6、父盒子添加BFC,直系子盒子也添加BFC,该子盒子还是会收到父盒子的影响,但是子盒子里的孙盒子不会再受到爷爷盒子的影响了

四、应用场景

1、两个标准流(或者同时添加float:left浮动)盒子添加margin属性,距离不是两个值之和而是较大值作为两个盒子的距离

BFC:

 如何让盒子上下的距离是两个margin值之和?

让两个盒子任一一个盒子成为BFC里面的盒子,以不受外部盒子的影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值