美文网首页
collapsing-margin外边距叠加

collapsing-margin外边距叠加

作者: 采姑娘的大白菜 | 来源:发表于2017-03-24 18:39 被阅读0次

外边距叠加是指:若两个元素上下毗邻且都定义了不为0的外边距离,同时又没有任何内边距,边框等设定,那么这两个元素之间的距离将小于二者外边距的和。因此两个都带有40px外边框的元素垂直相接并不会出现80px的垂直距离,只会取两者的最大值,即40px。

<div class="div"></div>
<div class="div2">

.div{width:40px;height:40px;margin-bottom:40px;padding:1px;background:red;}
.div2{width:40px;height:40px;margin-top:40px;background:red;}

Paste_Image.png

触发BFC (Block formatting context直译为"块级格式化上下文"。它是一个独立的渲染区域,只有Block-level box参与, 它规定了内部的Block-level Box如何布局,并且与这个区域外部毫不相干。) 的因素是float(除了none)、overflow(除了visible)、display(table-cell/table-caption/inline-block)、position(除了static/relative)
    创建BFC的初衷只是为了让元素本身(包括它的子元素)能够正确的计算自己的宽高。
    不发生折叠的触发因素是浮动元素、inline-block 元素、绝对定位元素,这个只是创建BFC因素的子集,但并不能说明创建了BFC的元素就不会发生折叠,因为BFC还可以用overflow:hidden来创建。相反如果父元素触发了BFC,那么他的块级子元素反而会发生折叠。
    理解原理,如果想不发生叠加就好办了,设置浮动,定位,display的一些属性都可以,但推荐用垂直方向上用同一个margin值比如margin:top,或者用padding或border代替margin,border设置transparent即可,甚至在块级元素中间加点什么内容隔绝两者也可以。

相关文章

  • collapsing-margin外边距叠加

    外边距叠加是指:若两个元素上下毗邻且都定义了不为0的外边距离,同时又没有任何内边距,边框等设定,那么这两个元素之间...

  • css外边距叠加

    css外边距叠加条件: 必须是普通文档流中的块框的垂直外边距相互接触才会发生外边距叠加,注意:外边距必须相互接触才...

  • 第3章《精通css》

    3.1.2外边距叠加 只有普通文档流中块框的垂直外边距才会发生外边距叠加,行内框、浮动框或绝对定位框之间的外边距不...

  • Margin叠加外边距叠加margin值为负数

    当两个垂直外边距相遇时,这两个外边距会合并为一个外边距,叠加之后的外边距高度等于发生叠加之前的两个外边距的最大值。...

  • CSS: margin叠加几种情况

    margin叠加的意思是:当两个或者更多的垂直外边距相遇时,它们将形成一个外边距,这个外边距的高度等于两个发生叠加...

  • CSS 外边距叠加详解

    CSS 外边距叠加有以下几种情形: 相邻(兄弟)元素的上下边距叠加 包含(父子)元素的上下边距叠加 元素自身的上下...

  • margin collapsing (外边距叠加)

    现象 BFC中相邻的两个block-level盒子,上一个box的下边距和下一个box的上边距会发生叠加,marg...

  • 外边距合并现象

    在默认布局的垂直方向上,默认情况下外边距是不会叠加的,会出现合并现象,谁的外边距大就听谁的。

  • css相关

    外边距叠加问题当两个外边距相遇时(中间没有border、padding等)凡是未形成块级格式化上下文(BFC)的盒...

  • 上下外边距塌陷的几种情况

    转载外边距折叠的几种情况:1、当一个元素出现在另一个元素上面时,第一个元素的底外边距和第二个元素的顶外边距发生叠加...

网友评论

      本文标题:collapsing-margin外边距叠加

      本文链接:https://www.haomeiwen.com/subject/vhaxottx.html