如何消除子容器的margin-top给父容器造成的合并margin影响。

我们都知道,在CSS的盒模型中,当子容器设置了margin-top之后,父容器也会受到相应的影响,如下图所示,这是我们部门新来的一个员工写的页面,然后碰到了这个问题:



要解决这种情况,通常情况下我们会采用父容器的padding属性来替代子容器的margin属性。那么,有没有别的办法可以解决这个问题呢?
答案是有的!
我们发现此时的父容器并没有使用border属性或padding属性,可是当我们加上 这两个属性中的某一个之后,上面所说的这种现象消失了!!更直接的说起作用的应该是 padding-top或border-top-style 这两个属性。




如上两图所示。当我们使用border或padding中的任意一个属性时,这种现象就消除了。
但是border-top或padding-top宽度必须至少1像素才行。
于是,利用css盒模型的特点,我们可以将父容器的高度减1像素,padding-top加1像素或border-top设置为1像素即可。


补充:上面说的这种解决方案并非最合适,最近看了下BFC相关规范,突然联想到这个问题,原来只需要对外层容器触发BFC布局即可。触发BFC方式有很多,这里最恰当的应该是overflow:hidden了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值