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

三分钟带你回顾margin折叠问题

一、什么是 margin 折叠?

只有块级盒子才会出现这个现象: 上下挨在一起的两个块盒子,它们上下方向的外边距碰到一起,不会叠加,会合并成一个外边距,只保留数值更大的那一个。

两个关键点

  1. 只在上下垂直方向生效(margin-top/margin-bottom
  2. 左右水平外边距(margin-left/margin-right)永远不会折叠

二、三种会发生折叠的情况

  1. 两个兄弟盒子上下挨着上面盒子的底部外边距,和下面盒子的顶部外边距合并。

  2. 父子嵌套盒子父盒子没有边框、内边距、BFC 隔离时,子盒子的上下外边距会 “穿出去”,和父盒子外边距合并。

  3. 完全空的块盒子盒子里面没有文字、没有边框、没有内边距,它自己的顶部和底部外边距会互相合并。

三、5 种解决折叠的简单方法

方法 1:父盒子用内边距 padding,子盒子取消外边距

不用子元素 margin 撑开距离,改用父元素 padding,从根源避免折叠

方法 2:给父盒子加边框 / 一点点内边距

边框能隔开父子的外边距,透明边框不影响页面外观

方法 3:给子盒子加浮动或者绝对定位

浮动、绝对定位的盒子脱离普通文档流,不会出现 margin 折叠

方法 4:父盒子用 flex/grid 弹性布局

只要父容器设为弹性布局,里面子元素的外边距不会穿透父盒子

方法 5:父盒子开启 BFC(最常用)

最简单写法:父盒子设置overflow: hidden,创建独立格式化区域,锁住子元素 margin

四、实操完整例子

1. 原生状态:出现 margin 折叠

子盒子的上边距会穿透父盒子,整个灰色父盒子一起往下移,而不是子盒子在父内部下移

2. 用 BFC 修复后:折叠消失

父盒子加overflow: hidden,子盒子的外边距被限制在父盒子内部

五、注意细节

  1. 只有普通文档流的块级元素才会折叠;行内元素、浮动、绝对定位盒子无折叠
  2. 负数外边距也会折叠,最后取两个负数里相对更大(没那么负)的值
  3. 左右水平 margin 永远不会折叠,不用考虑
http://www.cnnetsun.cn/news/2964202.html

相关文章:

  • Mega安汇:围绕外汇用户支持体系与用户体验路径的框架对照
  • GitHub中文化插件:5分钟告别英文界面,中文开发者效率提升指南
  • 从Notebook到生产环境:机器学习模型落地实战指南
  • LabVIEW Crypto工具包:一体化工业级加密解决方案与实战指南
  • 青龙定时任务管理平台:终极自动化解决方案完整指南
  • 电子工程师无网AI实战:本地部署Gemini级能力
  • 深入Appium Inspector源码:从WebDriver协议到自动化测试工具定制
  • Qwen 3.5架构解析:混合注意力与23专家图谱的范式跃迁
  • Pandas多维聚合实战:构建可复用的高维数据立方体
  • 联发科设备刷机实战指南:3大核心场景全面解析与数据恢复方案
  • 固定数据集与交叉验证:工业AI落地的三层验证实践
  • 深入解析SM4分组密码:从算法原理到工作模式实战应用
  • Lakehouse AI:湖仓一体驱动的统一AI治理与生产实践
  • PlexTraktSync安全配置指南:API密钥管理与自动化同步实践
  • RAG 到底解决什么问题:私有知识、外部资料和模型幻觉边界
  • LLM与RNN混合架构在代码理解中的应用与优化
  • 猫抓浏览器扩展:三步轻松下载网页视频的终极指南
  • XUnity.AutoTranslator完整解决方案:Unity游戏AI实时翻译的终极指南
  • Nmap防火墙绕过技术:从隐匿扫描到流量变形的实战指南
  • 微信小程序安全测试实战:从环境搭建到漏洞挖掘全解析
  • 函数调用:聊天机器人的虚拟按钮与业务动作流
  • Playwright自动化测试:从核心原理到实战应用全解析
  • Vercel 前端应用极速部署与场景化落地指南
  • MPC105 L2缓存接口配置:从硬件设计到软件调优的工程实践
  • OpenCore Legacy Patcher终极指南:免费让老旧Mac焕发新生的完整方案
  • 百度网盘提取码终极解决方案:3秒免费获取资源密码的完整指南
  • MySQL MVCC 详解
  • Pike与主流IAC工具集成指南:Terraform、CloudFormation最佳实践
  • TC850高速积分型ADC:工业噪声环境下的高精度数据采集解决方案
  • 如何快速上手Unity2D Components:初学者必备的10个核心组件