谈外margin collapsing(外边距叠加)
发布日期:2021-06-24 18:20:51 浏览次数:2 分类:技术文章

本文共 898 字,大约阅读时间需要 2 分钟。

读过李松峰老师翻译的新书中《CSS设计师指南(第3版》的外边距叠加部分()实在是有些捉急啊,这地方实在是有些没写到位,也有错误(如“叠加的只是垂直外边距,水平外边距不叠加”)

margin collapsing现象

BFC(block formatting context)中相邻的两个block-level的盒,上一个box的下边距会跟下一个box的上边距发生叠加,即两者取最大的,而不是相加:

run

margin collapsing与方向无关

《CSS设计师指南(第3版》中讲到“叠加的只是垂直外边距,水平外边距不叠加”,这个说法是错误的,叠加与否完全取决于两个box是否是位于同一BFC的两个相邻box,与水平垂直无关,下面例子中,更改了body的writing-mode,于是叠加发生在了水平方向(仅ie可看)

run

margin collapsing仅仅发生在BFC

margin collapsing不发生在IFC

当把元素的display属性设为inline-block,它们都位于IFC当中,所以不论水平还是竖直方向,都不会发生叠加:

run

margin collapsing不发生在floats

当把元素的float属性设为left,它们都不在正常流中,更不在BFC中了,同样不论水平还是竖直方向,都不会发生叠加:

run

margin collapsing可能跨元素

当一个容器既没有border又没有padding时,它的第一个子box的的margin也能跟它的上一个容器的margin发生叠加:

run

margin collapsing不能跟padding(内边距)折叠

有padding(内边距)的时候,上一节的情况不发生:

run

 

margin collapsing不能跟跨越BFC

当一个容器在其内部创建新的BFC时,跨元素折叠的情况也不会发生。

run

转载地址:https://blog.csdn.net/weixin_34248258/article/details/86474455 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:BIO与NIO、AIO的区别(这个容易理解)
下一篇:Appium 从 0 到 1 搭建移动 App 功能自动化测试平台 (1):模拟器中运行 iOS 应用

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月13日 07时04分48秒