子DIV设置margin-top影响父DIV位置的解决办法

子DIV设置margin-top影响父DIV位置的解决办法

2015-07-23 12:42:22 来源:威易网 作者:icech

在设置子DIV的margin-top时候,如果与父DIV之间无任何元素的间隔,那么就会让父DIV的位置收到影响。如图:


在设置子DIV的margin-top时候,如果与父DIV之间无任何元素的间隔,那么就会让父DIV的位置收到影响。如图:


代码如下:
<style>
.zb-tips{ margin-top: 30%; }
</style>
<div class="zb-container">
    <div class="ui-tips ui-tips-warn zb-tips">
        <i></i><span>签到失败!请下载并安装“xxx”APP扫描二维码</span>
    </div>
</div>

原因是:所有毗邻的两个或更多盒元素的margin将会合并为一个margin共享之。毗邻的定义为:同级或者嵌套的盒元素,并且它们之间没有非空内容、Padding或Border分隔。这个问题的避免方法很多,只要破坏它出现的条件就行。给 Outer Div 加上 padding/border,或者给 Outer Div / Inner Div 设置为 float/position:absolute(CSS2.1规定浮动元素和绝对定位元素不参与Margin折叠)。

如何解决这个问题呢?方法有多个:

方法1:在父DIV的css加上“overflow:hidden;”。这种方法是目前来看最完美的解决办法。

方法2:在父DIV的css加上“border:1px solid transparent;”。

方法3:在父DIV的css加上float或者position:absolute。

方法4:在父DIV的css加上padding-top来代替margin实现效果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值