margin-top不起作用???

本文探讨了CSS布局中一个常见的问题:当子元素设置margin-top时,父元素被拉下,导致布局塌陷。文章列举了三种解决方法:1) 给父元素添加边框并设置box-sizing为border-box;2) 设置父元素的overflow为auto,创建BFC;3) 将子元素设为行内块元素。建议使用设置overflow为auto的方法,因为它不会影响元素大小且能有效解决问题。

首先我们来看案例

 设置两个div嵌套,给里面的div加margin-top,目的是想让里面的div距离外边的div有50px的距离,但是运行看

结果却是外边的div往下挪了50px,可以说父元素塌陷了或者说子元素击穿了父元素

那么解决这个问题有三种方法:

1.给父元素加边框  border: 1px solid #000;

看结果

但是加边框后会使父元素变大,需要设置box-sizing: border-box;将内容盒转换成边框盒

2.给父元素设置overflow:auto;

设置overflow: auto;会触发BFC(Block formatting context块级格式化上下文),它是页面上独立的渲染区域,它所有的样式都不会影响带外面的元素

3.将子元素设置成行内块标签display: inline-block;

 建议使用第二种方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值