外边距合并

  1. 什么是外边距合并:
    常规文档流中两块级元素垂直方向外边距相邻(中间没有任何隔离物,如border,padding)时,会出现垂直方向外边距合并
  2. 合并结果:
  • 两个相邻的外边距都是正数时,折叠结果是它们两者之间较大的值


  • 两个相邻的外边距都是负数时,折叠结果是两者绝对值的较大值



  • 两个外边距一正一负时,折叠结果是两者的相加的和


  1. 几种外边距合并场景:
  • 相邻兄弟元素外边距合并
    相邻兄弟元素垂直方向外边距会出现合并

  • 父子元素外边距合并
    当父元素没有边框或padding时,父元素的垂直外边距会与子元素的垂直外边距合并,如下图所示

  • 非兄弟非父子元素外边距合并
    两相邻非兄弟元素之间没有padding或边框等间隔时,会出现外边距合并,如下图所示


  • 自身外边距合并
    当元素的content为0时,他自己的margin-topmargin-bottom之间没有间隙,会产生合并

    如上图所示,元素的实际高度=margin-top+margin-bottom+border-top+border-bottom+padding-top+padding-bottom+height,上下margin各为45px,元素的高度应为90px,但图中元素高度只有45px,说明元素的上下外边距合并了。

  1. 消除外边距合并的方法
  • 为父元素设置 BFC 或 padding 或 border
  • 兄弟元素间设置 float 或 inline-block 或 absolute
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,687评论 1 92
  • 外边距合并指的是:当两个垂直外边距相遇时,它们将形成一个外边框。合并后的外边距高度等于两个发生合并的外边距的较大者...
    你的操作666阅读 2,662评论 0 0
  • 边距合并 合并条件: 在常规文档流(非float和绝对定位)的块级盒子,处于同一个BFC当中。没有线盒,没有空隙(...
    燃烧吧_小宇宙阅读 2,656评论 0 0
  • 1.在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?给个父子外边距合并的范例 概念:在CSS当...
    饥人谷_任磊阅读 4,032评论 0 3
  • 外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度...
    种谔阅读 3,813评论 2 5