CSS中的BFC是什么?

一、什么是BFC?

BFC(Block Formatting Context)块格式化上下文,简单来说就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。

二、如何触发BFC?

我们经常在写CSS时不知不觉就会触发了BFC:

  • 根元素,即HTML元素
  • 浮动元素:元素的float不是none,指定float为left或者right就可以创建BFC
  • 绝对定位元素:元素的position为absolute或fixed
  • display:inline-block、table-cell、flex、inline-flex
  • overflow指定除了visible的值

三、BFC有什么特点?

  • 在BFC中,块级元素从顶端开始垂直地一个接一个的排列。(当然了,即便不在BFC里块级元素也会垂直排列)
  • 如果两个块级元素属于同一个BFC,它们的上下margin会重叠(或者说折叠),以较大的为准。但是如果两个块级元素分别在不同的BFC中,它们的上下边距就不会重叠了,而是两者之和。
  • BFC的区域不会与浮动的元素区域重叠,也就是说不会与浮动盒子产生交集,而是紧贴浮动边缘。
  • 计算BFC的高度时,浮动元素也参与计算。BFC可以包含浮动元素。(利用这个特性可以清除浮动)
  • BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。

四、BFC有什么用?

1、解决外边距折叠问题

可以把其中一个div放到BFC中,添加overflow: hidden;开启BFC

2、制作两栏布局

左边固定,右边自适应------> 给右边的div添加overflow: hidden;开启BFC

3、清除元素内部的浮动

当在父元素中只设定一个盒子浮动,另一个不浮动时,会造成第二个盒子在第一个盒子的下方,被覆盖掉一部分

给第二个元素设置BFC:overflow: hidden;

原文链接:https://blog.csdn.net/weixin_43974265/article/details/115416184

相关推荐
2601_958492556 小时前
Optimizing Engagement with Freehead Skate - HTML5 Game - Construct 3
前端·html·html5
茉莉玫瑰花茶7 小时前
工作流的常见模式 [ 1 ]
java·服务器·前端
zhangxingchao7 小时前
AI应用开发六:企业知识库
前端·人工智能·后端
山峰哥8 小时前
SQL慢查询调优实战:从全表扫描到索引覆盖的完整复盘
前端·数据库·sql·性能优化
红尘散仙8 小时前
一个 `#[uniffi::export]`,把 Rust 接进 React Native
前端·后端·rust
moshuying8 小时前
AI Coding 最大的 token 黑洞,可能根本不是 prompt
前端
红尘散仙8 小时前
一行 `#[specta::specta]`,让 Tauri IPC 有类型
前端·后端·rust
lichenyang4538 小时前
HarmonyOS HMRouter 接入记录:从普通 Tab Demo 到路由跳转
前端
木斯佳9 小时前
前端八股文面经大全:腾讯WXG暑期前端一面(2026-05-15)·面经深度解析
前端·面试·笔试