了解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代替子元素

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

相关推荐
qiyi.sky9 分钟前
JavaWeb——Vue组件库Element(3/6):常见组件:Dialog对话框、Form表单(介绍、使用、实际效果)
前端·javascript·vue.js
煸橙干儿~~13 分钟前
分析JS Crash(进程崩溃)
java·前端·javascript
安冬的码畜日常22 分钟前
【D3.js in Action 3 精译_027】3.4 让 D3 数据适应屏幕(下)—— D3 分段比例尺的用法
前端·javascript·信息可视化·数据可视化·d3.js·d3比例尺·分段比例尺
l1x1n01 小时前
No.3 笔记 | Web安全基础:Web1.0 - 3.0 发展史
前端·http·html
昨天;明天。今天。1 小时前
案例-任务清单
前端·javascript·css
zqx_72 小时前
随记 前端框架React的初步认识
前端·react.js·前端框架
惜.己3 小时前
javaScript基础(8个案例+代码+效果图)
开发语言·前端·javascript·vscode·css3·html5
什么鬼昵称3 小时前
Pikachu-csrf-CSRF(get)
前端·csrf
长天一色3 小时前
【ECMAScript 从入门到进阶教程】第三部分:高级主题(高级函数与范式,元编程,正则表达式,性能优化)
服务器·开发语言·前端·javascript·性能优化·ecmascript
NiNg_1_2344 小时前
npm、yarn、pnpm之间的区别
前端·npm·node.js