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

相关推荐
鸡腿大王几秒前
震惊:v8引擎竟是如此操作代码(JS预编译)
前端·javascript
whisper几秒前
pnpm和npm对比,为什么现在更多项目使用pnpm运行项目
前端
梨子同志1 分钟前
Node.js 模块系统
前端
用户2965412759171 分钟前
JSAPIThree 加载 WMS、WMTS 和通用栅格图学习笔记:标准地图服务与切图规则
前端
白龙马云行技术团队3 分钟前
Antd Tree组件定制化性能提升实践
前端
大帅子4 分钟前
Mac 用户对于不同前端项目自动配置 node 版版本
前端·node.js
_一两风4 分钟前
揭秘 ChatGPT 同款“打字机”特效:前端流式输出 (Streaming) 原理全解
前端·vue.js·openai
fruge8 分钟前
大型前端项目性能瓶颈:内存泄漏排查与解决方案
前端
_一两风8 分钟前
深入理解 JavaScript 内存机制:从栈堆到闭包
前端·javascript
紫园xingkeit和top9 分钟前
TypeScript 系统入门到项目实战 趁早学习提高职场竞争力
前端