为了账号安全,请及时绑定邮箱和手机立即绑定

margin塌陷问题

标签:
JavaScript

一:什么是margin塌陷

在标准文档流中,竖直方向的margin会出现叠加现象(水平方向不会塌陷),两个margin紧挨着,中间没有border或者padding
margin直接接触,就产生了合并
表现为较大的margin会覆盖掉较小的margin,竖直方向的两个盒子中间只有一个较大的margin,这就是margin塌陷现象

二:margin塌陷的分类

1、兄弟关系的盒子
2、父子关系的盒子

父子关系的盒子塌陷

<div class="onBox">
    <div class="underBox"></div>
    </div>
</body>
*{
    margin: 0;
    padding: 0;
}
.onBox{
    width: 100px;
    height: 100px;
    background: cadetblue;
    margin-top: 100px;
    margin-left: 100px;    /*border-top: 1px solid transparent;*/
    /*padding-top: 1px;*/
    /*overflow: hidden;*/
    /*position: absolute;*/
    /*position: fixed;*/
    /*display: inline-block;*/}
.underBox{
    width: 50px;
    height: 50px;
    background: aquamarine;
    margin-top: 30px;
    margin-left: 30px;
}

理想的结果:子盒子与父盒子有30px的margin


webp

image.png

实际结果:父子margin重叠了,用了大的margin(100px)


webp

image.png

三:解决方案

  • 给父元素添加透明边框,至少添加border-top:1px solid transparent

  • 给父元素添加padding-top:npx

  • 给父元素添加overflow:hidden

  • 给父元素添加position: absolute;

  • 给父元素添加position: fixed;

  • 给父元素添加display: inline-block;




作者:椰果粒
链接:https://www.jianshu.com/p/911c3d50873d


点击查看更多内容
4人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消