欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > 【CSS】外边距塌陷

【CSS】外边距塌陷

2025/12/14 9:56:25 来源:https://blog.csdn.net/okay_ing/article/details/143470183  浏览:    关键词:【CSS】外边距塌陷

问题背景

在移动应用页面开发中,父元素和子元素外边距合并,导致布局效果和预期不一致。

<template><view class="container"><view class="card"><p>TEST</p></view></view>
</template><style lang="scss">
.container {background-color: #cccc;height: 100vh;.card {background-color: red;margin: 50rpx auto;width: 95%;border-radius: 5px;}}</style>

什么是外边距塌陷

当两个垂直方向上的块元素外面边距相遇时,会形成一个外边距。这个外边距等于两个外边距的最大时,而不是两个外边距的相加。

外边距塌陷的情况

相邻的块级元素:当两个相邻的块级元素的上下外边距相遇时,会发生塌陷。

      .box1 {height: 300px;width: 300px;background-color: aqua;margin-bottom: 20px;}.box2 {height: 300px;width: 300px;background-color: red;margin-top: 30px;}

此时两个盒子上下两外边距是30px,不是50px

父元素与子元素:如果子元素是第一个或最后一个块级元素,并且没有边框、内边距或高度,父元素的外边距可能会塌陷。

      .parent {height: 300px;width: 300px;background-color: aqua;margin: 20px;}.child {height: 300px;width: 300px;background-color: red;margin: 30px;}

在这里,父元素的下外边距和子元素的下外边距相遇,最终父元素的外边距为30px。

如何避免外边距塌陷

  • 添加边框和内边距
  • 设置浮动
  • 使用绝对定位(设置元素为绝对定位(position: absolute)也可以避免外边距塌陷。)
  • 使用flex活grid布局

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com