关于div嵌套margin-top影响父div的解决办法及各种情况测试

遇到的问题:
两个div嵌套,希望里面的div在父div中垂直移动,结果发现设置margin-top的时候,父div也一起移动,于是进行了以下测试:

目前有两个div :拟定root div宽度为全屏 高度为50px
为了不影响测试,先将body的默认margin去除
这里写图片描述
结果为:
这里写图片描述

情况1:设置外div的margin-top=50px;
这里写图片描述
结果为:
这里写图片描述
下移50px;

情况2:设置外div的margin-top=50px;嵌套的div1(高度为20px 红色区域)的margin-top=100px;
这里写图片描述

结果为:
这里写图片描述

下移100px

情况3:只设置内div1的margin-top=100px
这里写图片描述

结果还是下移100px。
这里写图片描述
由此说明:
内div设置margin的时候不是根据父div的顶端来计算

接着进行下面的测试:
情况4:不设置外div的margin 设置内div1的margin为100px 设置内div2的margin为100px

这里写图片描述

结果是外div下移了100px
这里写图片描述

情况5:不设置外div的margin 不设置内div1的margin 设置内div2的margin为100px
这里写图片描述

结果为:
这里写图片描述
父div没有移动

由此说明:
HTML在计算div的margin的时候是根据第一个div设置的margin决定

所以在遇到两个div嵌套,希望里面的div在父div中垂直移动的时候可以加个1px高度的空div解决
这里写图片描述

结果为:
这里写图片描述

当然还有其他很多办法,希望大家多多搜集进而分享。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值