CSS外边距叠加

【外边距合并】

外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距

合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者

接下来举几个简单例子:

Html代码 收藏代码

垂直外边距叠加
上下垂直外边距叠加为较大的那个 就是20
里外垂直外边距叠加为较大的那个 也是20
没有内容,没有边框,没有内边距,自身的上下外边距一样可以叠加

【注意:】只有普通文档流中块框的垂直外边距才会发生外边距合并。行内框、浮动框或绝对定位之间的外边距不会合并。实际操作发现,相对定位垂直外边距会叠加,但是任何情况下,水平外边距是不会叠加的。

【官方解释】

 块的顶部外边距和底部外边距有时被组合(折叠)为单个外边距,其大小是组合到其中的最大外边距,这种行为称为外边距塌陷(也叫外边距合并)。

发生外边距塌陷的三种情况:

(1)相邻的兄弟姐妹元素(除非后者兄弟姐妹需要清除过去的浮动)

(2)块级父元素与其第一个/最后一个子元素

(3)空块元素

下面,我们通过几个实例对这三种情况进行解释

一、相邻的兄弟姐妹元素

毗邻的两个兄弟元素之间的外边距会塌陷(除非后者兄弟姐妹需要清除过去的浮动)

这句话有两个要点:

1、一般情况:毗邻的两个兄弟元素之间的外边距会塌陷;

2、特殊情况:当后面div需要清除过去的浮动时,毗邻的两个兄弟元素之间的外边距不会塌陷

二、块级父元素与其第一个/最后一个子元素

(1)上边距合并:

如果块级父元素与第一个子元素之间不存在上边框、上内补、inline content、清除浮动这四条属性之一(对于上边框和上内补,也可以说,当上边距及上内补宽度为0时),那么这个块级元素和其第一个子元素的上边距就可以说“挨到了一起”。此时这个块级父元素和其第一个子元素就会发生上外边距合并的现象,换句话说,此时这个父元素对外展现出来的外边距将直接变成这个父元素和其第一个子元素的margin-top的较大者,而父元素与该子元素之间边距消失

(2)下边距合并:

类似的,若块级元素的margin-bottom与它的最后一个子元素的margin-bottom之间没有border、padding、inline content、height、min-height、max-height分隔时,就会发生下边距合并的现象

我们先看一个例子:

Html代码 收藏代码
// css
.parent{
width:400px;
height:300px;
background:#ddd;
}
.child1{
width:300px;
height:100px;
background:pink;
}
.child2{
width:200px;
height:100px;
background:gray;
}
// html

结果:

现在我们想让粉色div和父div之前有40px的空隙,所以给粉色div设置"margin-top:40px":

预期结果:

实际结果:

  这就是父子元素之间的margin合并。由于粉色div与父div之间没有上边框、上内补、inline content、清除浮动这四条属性之一,使得两个div之间产生了margin合并的现象。

  同样地,父元素与最后一个子元素之间也可能发生margin合并的情况,情况大致相同,不再举例说明

三、空块元素

如果存在一个空的块级元素,其border、padding、inline content、height、min-height都不存在,那么此时它的上下边距中间将没有任何阻隔,此时它的上下外边距将会合并

【总结】

①为什么会发生margin合并?

这些元素(包括兄弟、父子元素等)之间之所以会发生margin合并,是因为它们属于同一个BFC。关于BFC (Block Formatting Context块级格式化上下文

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随与我联系,我会及为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随与我联系,我会及解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计,皆可应用在项目、毕业设计、课程设计、期末/期/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值