css中的外边距重叠问题

css中的外边距重叠

在css中元素间相邻垂直方向外边距会发生重叠,这里记录下外边距重叠的几种情况和解决外边距重叠问题的几种方法。

一、兄弟元素间的外边距重叠

如果外边距为正值,兄弟元素间的相邻垂直外边距会取两者间的较大值。
如果外边距一正一负,取两者的和。
如果都为负值,取两者中绝对值较大的一个。

兄弟元素间的外边距重叠一般情况下不处理。

二、父子元素间的外边距重叠

当给子元素设置一个外边距时,子元素的外边距会传递给父元素,容易影响到页面布局,此时需要对这种情况进行处理。

处理方式如下:
1、不使用外边距,用padding设置内边距。会改变父元素可见框的大小,需要重新计算父元素的height或是设置box-sizing: border-box;;

2、为元素设置边框使两者的外边距不相邻。同样设置边框会改变元素大小,需要重算height或者设置box-sizing:border-box;;

3、为父元素开启BFC(块级格式化环境),元素在开启BFC后,子元素与父元素外边距不会发生重叠。
在这里插入图片描述

4、使用::before伪元素选择器和display:table来解决外边距重叠问题。
在这里插入图片描述

5、clearfix类 常用于同时解决高度塌陷和外边距重叠问题。
在这里插入图片描述

6、为子元素开启绝对定位,并为父元素开启相对/绝对定位(目的是使父元素作为子元素的包含块)。

在这里插入图片描述

在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值