什么是BFC,哪些元素会产生BFC

本文介绍了Block Formatting Contexts(BFC)的概念,它是CSS2.1中的一个关键概念,涉及布局规则和子元素定位。BFC防止了元素间的margin重叠,并且在处理浮动元素与高度塌陷时起到重要作用。文章列举了产生BFC的元素,如根元素、浮动元素、绝对定位等,并详细阐述了BFC在解决外边距合并和父元素高度塌陷问题上的应用。

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

一、什么是BFC

1、BFC即 Block Formatting Contexts (块级格式化上下文), 是 W3C CSS2.1 规范中的一个概念。

2、BFC是指浏览器中创建了一个独立的渲染区域,决定了其子元素如何定位,以及与其他元素的相互关系和作用。

三、BFC布局规则

内部的Box会在垂直方向,一个接一个地放置。

Box垂直方向的距离由margin决定。属于同一个BFC的两个相邻Box的margin会发生重叠

每个元素的margin box的左边, 与包含块border box的左边相接触(对于从左往右的格式化,否则相反)。即使存在浮动也是如此。

BFC的区域不会与float box重叠,而是紧贴浮动元素。

BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。反之也如此。

计算BFC的高度时,浮动元素也参与计算

四、哪些元素会产生BFC

1、根元素

2、float属性不为none

3、position为absolute或fixed

4、 display为inline-block, table-cell, table-caption, flex, inline-flex

5、 overflow不为visible

五、在布局中BFC的应用场景

(1)清除盒子垂直方向上外边距合并——盒子垂直方向的距离由margin决定。属于同一个BFC的两个相邻盒子垂直方向的margin会发生重叠。

解决方法:

根据属于同一个BFC的两个相邻盒子垂直方向的margin会发生重叠的性质,可以给其中一个盒子再包裹一个盒子父元素,并触发其BFC功能(例如添加overflow:hidden;)这样垂直方向的两个盒子就不在同一个BFC中了,因此也不会发生垂直外边距合并的问题了。

(2)在子元素设置成浮动元素的时候,会产生父元素高度塌陷的问题。

解决方法:

给父元素设置overflow:hidden;的时候会产生BFC

由于在计算BFC高度时,自然也会检测浮动的子盒子高度。所以当子盒子有高度但是浮动的时候,通过激发父盒子的BFC功能,会产生清除浮动的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值