CSS:外边距合并

  • 时间:2018-06-06 00:31 作者:DesignCode 来源:DesignCode 阅读:71
  • 扫一扫,手机访问
摘要:块的顶部外边距和底部外边距有时候会被折叠为单个外边距,其大小为两值中的最大值,这种行为就被称为外边距合并。一般发生外边距合并主要有以下三种情况:相邻兄弟姐妹元素父元素和子元素空元素相邻兄弟姐妹元素两个兄弟元素之间的外边距,会取两个元素外边距的最大值。这个段落的下外边距被合并......这个段落的上外

块的顶部外边距和底部外边距有时候会被折叠为单个外边距,其大小为两值中的最大值,这种行为就被称为外边距合并。

一般发生外边距合并主要有以下三种情况:

  • 相邻兄弟姐妹元素

  • 父元素和子元素

  • 空元素

相邻兄弟姐妹元素

两个兄弟元素之间的外边距,会取两个元素外边距的最大值。

这个段落的下外边距被合并...

...这个段落的上外边距被合并。

按照上面的例子能得出,两个p元素之间距离为30px。

父元素和子元素

这种情况又能分为以下两种:

  • 父元素的上外边距和第一个子元素的上外边距

  • 父元素的下外边距和最后一个子元素的下外边距

这两种情况,最终显示出来的结果都是取二者中的最大值。

空元素

自己的上外边距会和自己的下外边距合并

这个段落的和下面段落的距离将为20px

这个段落的和上面段落的距离将为20px

这样第一个p元素和第三个p元素之间距离为20px

阻止合并方法

这部分将讲解不会发生外边距合并的情况。

通使用方法

  1. 处于静态流元素会发生合并,所以floatposition:absolute都不会发生合并

  2. 设置为inline-block ,也不会发生合并

针对于父元素和子元素情况不合并方法

以下都不会发生合并

  1. 设置了清理浮动属性

  2. 由于margin需要直接接触才可以合并,所以父元素或者子元素中有border或者padding,或者者二者之间有元素

注意

  • 假如两个外边距值中有一个为0,也会发生合并。

  • 假如有负外边距,合并后外边距为最大正边距加上最小负边距(绝对值最大的一个),如上面元素下边距为20px,下面元素上边距为-20px,则最后为0px

参考资料

外边距合并MDN

「CSS」Margin Collapsing - 外边距合并

  • 全部评论(0)
最新发布的资讯信息
【系统环境|服务器应用】用python写一个简单的词法分析器(2018-12-17 22:49)
【系统环境|服务器应用】Requirejs 和 AngularJS 中依赖注入(2018-12-17 22:49)
【系统环境|服务器应用】Excel 数据验证常用以及自己设置用法(2018-12-17 22:48)
【系统环境|服务器应用】WordPress 站点数据手动备份(2018-12-17 22:48)
【系统环境|服务器应用】20 个常用的 Excel 快捷键,瞬间提升工作效率(2018-12-17 22:48)
【系统环境|服务器应用】Java这些多线程基础知识你会吗?(2018-12-17 22:48)
【系统环境|服务器应用】vue中$refs的用法及作用详解(2018-12-17 22:47)
【系统环境|服务器应用】【轻知识】跑grpc的一个demo——Building APIs with GRPC, PHP, and Golang(2018-12-17 22:47)
【系统环境|服务器应用】Golang学习笔记之包管理工具(govendor)(2018-12-17 22:47)
【系统环境|服务器应用】阿里云sn1ne实例和sn2ne实例比较(2018-12-17 22:47)
手机二维码手机访问领取大礼包
返回顶部