了解margin重叠切页面入门更丝滑

当入门切页面时,我们常常会感觉页面好像和自己有点奇怪,但是好像又没啥问题,那么可能就是因为边距重叠问题,本文就将带你了解什么是边距重叠问题,学会怎么解决它

问题

相邻兄弟元素的外边距取最大值

一个常见的问题是相邻兄弟元素之间外边距的计算。当这些兄弟元素都设置了上下外边距时,它们之间的上下边距会取两者中的最大值。这可能导致意外的布局结果。

两个容器之间发生边距重叠的外边距取得是最大值50px,上面容器的margin-bottom:30px被下方容器的margin-bottom覆盖

父子元素的外边距重叠

另一方面,父子元素的外边距重叠问题也需要我们关注。当一个父元素设置了上下外边距,同时最上或最下的子元素也设置了外边距并发生重叠时,边距重叠现象会导致取其中最大的一个作为父容器的外边距。

上面实际还有间距不止20px


父容器设置的margin-top:20px,但是实际上效果为30px,因为子容器的margin-top更大作为父容器的margin-top

解决重叠问题

以上是针对特定问题的解决方案,但我们还可以通过一些通用的方法来解决外边距问题,提高前端开发的效率和灵活性。

  1. 使用 Border 代替 Margin: 在一些情况下,我们可以考虑将元素的边框设置为透明的 border,以替代外边距的使用。这可以确保相邻元素之间有足够的间隔,避免合并和重叠。

  2. 使用padding 代替 margin : ,在子元素和父容器之间需要间距的时候可以为父容器设置padding而不是margin从而避免了边距重叠问题

  3. 使用空白元素隔开: 在特殊情况下,插入空白元素一定要设置样式为overflow:hidden可以帮助我们在布局中创造额外的间距,从而解决外边距问题。这是一个简单而直接的解决方案,适用于某些特定场景的问题解决。

总结

问题:

  1. 两个相邻兄弟元素,上下之间各自都设置了间距,间距会取两者最大值
  2. 父容器中,最上/最下的子元素设置了上边距/下边距,也会发生边界重叠的现象,取两者最大值作为父容器的外边距

解决:

  1. 使用空白元素隔开,空白元素设置样式overflow:hidden
  2. 使用border代替父元素margin
  3. 使用padding代替子元素

本人还在学习中,水平有限,文章可能存在纰漏或错误,如有问题欢迎指正,感谢你阅读这篇文章,如果你觉得写得还行的话,不要忘记点赞、评论、收藏哦!祝事业有成,生活愉快!😘

相关推荐
倔强的石头1066 分钟前
【Linux指南】动静态库系列(七):符号表与重定位:链接器如何把函数调用接起来
linux·前端·javascript
a1117761 小时前
3D 脑图谱 / Bilingual 3D Brain Atlas 项目
前端
T1mzhou1 小时前
ARM64 Linux 6.10内核启动流程2-rootfs 怎么挂上
linux·服务器·前端
小小尚@2 小时前
WebGIS/ECharts 地图开发|MapLand 在线行政区划边界一键下载 GeoJSON 工具
前端·javascript·echarts
默_笙3 小时前
🚍 一条 Todo 的奇幻漂流:TypeScript 全栈类型安全的"护照检查"
前端·javascript
计算机魔术师3 小时前
NVIDIA 以 129.3 亿美元收购 Hugging Face
前端
平头哥技术团队3 小时前
Day 01 | 用 HTML 写第一个网页:双击就能在浏览器打开
前端
计算机魔术师4 小时前
两年翻45倍!英伟达靠买买买建成千亿投资帝国
前端
paopaokaka_luck4 小时前
基于springboot3+vue3的精准扶贫管理系统(AI 问答、ECharts 图形化分析)
前端·人工智能·echarts
l1m0_5 小时前
智能电动自行车管理后台实战:AI生成页面与React组件化技巧
前端·react.js·ui·ai·设计