当前位置: 首页 > news >正文

Margin 塌陷问题如何解决?触发BFC。BFC的概念和触发条件

1️⃣ 什么是 Margin 塌陷

【现象】

  两个垂直方向相邻的块级盒子(兄弟或父子)之间的margin 会合并为其中的最大值,而不是两者相加。
【影响】

  兄弟元素:上下margin合并为其中的最大值
  父子元素:如果父元素没有padding 或 border,子元素的 margin-top会 透过 父元素与父元素的 margin-top合并

2️⃣ BFC(Block Formatting Context)是什么

【定义】

  1、BFC 是一个独立渲染区域,创建BFC的元素 内部的布局规则与外部隔离

  2、内部元素的margin 不会与 BFC外部 的 margin发生塌陷

  3、BFC区域不会与浮动元素重叠,会包裹内部浮动

  4、BFC的计算高度包含浮动子元素

 

3️⃣ 如何触发 BFC

触发属性示例
overflowvisible overflow:hidden / auto / scroll
display 特殊值 display: flow-root(推荐现代方案)、inline-blocktable-cell
浮动 float: left/right
定位 position: absolute / fixed
弹性/网格布局 display: flex / grid

 

4️⃣ 常见解决 Margin 塌陷的方法

方法代码示例原理
父元素创建 BFC overflow:hidden; / display: flow-root; BFC 内外 margin 不会塌陷
父元素加 padding 或 border padding-top:1px; / border-top:1px solid transparent; 子元素的 margin-top 不会透过 padding/border
浮动父元素 float:left; 浮动元素自动形成 BFC
flex/grid 布局 display:flex; Flex 容器是 BFC
伪元素清除 ::before { content:""; display:table; } display:table 也创建 BFC

 

5️⃣ BFC 除了解决 margin 塌陷还有什么作用?

  1、包含内部浮动元素(清除浮动)

  2、阻止文字环绕浮动

  3、隔离外部布局,防止浮动\外边距影响

 

http://www.rkmt.cn/news/9747.html

相关文章:

  • 火速收藏!2025 云栖大会 AI 中间件议程看点全公开(附免费报名通道)
  • WinForm引入项目资源文件
  • 训练集,验证集,测试集
  • ESP32 读取旋转编码器
  • 数1的个数
  • 基于RSSI修正的定位算法分析
  • 接口测试流程+jmeter并发+面试题(总结) - 指南
  • 完整教程:Java多线程初阶
  • 当写脚本循环更新几百万数据发现很慢怎么办 - 孙龙
  • 服装采购跟单系统的高效管理实践 - 详解
  • 服务器CPU、内存、磁盘、网络使用率,东方通CPU使用率东方通内存使用率监控脚本
  • 什么是 AutoModel
  • 深入解析:STM32——WDG看门狗
  • wxpython图形界面_01_最小基本结构
  • 006_字典操作
  • 东方通中间件嵌入式监控脚本
  • 个人作业-第二次软件工程作业
  • 实用指南:告别IP被封!分布式爬虫的“隐身”与“分身”术
  • 别的摄像机都能国标GB28181注册上,就这台海康摄像机注册不上来,国标配置都反复检查没问题
  • 003_for循环操作列表和元组
  • linux 文件传输命令
  • Redis AOF原理
  • ANSYS Electronics 2025 R1 安装与使用全流程图文教程
  • 实用指南:通义DeepResearch论文六连发全面解读
  • Notepad++8.6免费版下载及安装教程(附安装包)2025最新整理
  • mysql表新增字段,基本语法
  • 微波雷达模块WT4101重新定义饮水机茶吧机等智能家居
  • 硝基甲苯之魇
  • 关于串口通信(232、485、422)和常见问题,一篇文章就给你说清楚~
  • day13-Trae之一键换脸APP开发03