如何禁用兄弟元素之间的边距折叠

ieX*_*ept 7 css margin

可能这是非常愚蠢和众所周知的技巧,但我还没有找到任何修复.我试过" overflow"," content: ' '; display: table;" padding1px border.没有成功.所以我为这个问题做了一个小例子.

有2个块元素:带有底部边距的页眉和带有上边距的页脚.任务是将边距加在一起:50 + 49 = 99像素!

.main-header {
  margin-bottom: 50px;
}
.main-footer {
  margin-top: 49px;
}
Run Code Online (Sandbox Code Playgroud)
<h1>if distance btw H.&amp;F. is 99 px then margins don't collapse! Unfortunatelly, is is</h1>

<header class="main-header">
  HEADER Lorem ipsum dolor.
</header>

<footer class="main-footer">
  FOOTER <span>&copy;2015 Lorem ipsum dolor.</span>
</footer>
Run Code Online (Sandbox Code Playgroud)

Nen*_*car 6

您可以使用Flexbox,因为它没有collapsing margins.

.content {
  display: flex;
  flex-direction: column;
}

.main-header {
  margin-bottom: 50px;
}
.main-footer {
  margin-top: 49px;
}
Run Code Online (Sandbox Code Playgroud)
<div class="content">
  <header class="main-header">
    HEADER Lorem ipsum dolor.
  </header>

  <footer class="main-footer">
    FOOTER <span>&copy;2015 Lorem ipsum dolor.</span>
  </footer>
</div>
Run Code Online (Sandbox Code Playgroud)

  • +1因为我正在使用flexbox*期望*折叠边距并开始拉我的头发因为它们不会折叠。您能在规范中引用它们不会崩溃的地方吗? (3认同)