为什么 margin 在 div 中不起作用?

Why doesn't margin work inside divs?

我正在处理我的第一个视差页面,我在 callmenick 找到了一个简单的例子。

他已将 parallax.section 设置为 600 像素高。这也是图像的容器。

<section class="module content">
  <div class="container">    
    <h2>Lorem Ipsum Dolor</h2>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit...</p>
  </div>
</section>

<section class="module parallax parallax-2">
  <div class="container">
    <div class="test">Test container</div>
    <h1>Rise</h1>
  </div>
</section>

我在 container div 和 margin-top: 30px; 中添加了 test div 我预计它会在我的之间创建 30 像素的边距测试 div 和容器 div。相反,它在 div 部分之间创建了一个间隙。这是为什么?

如果我将overflow: hidden添加到containerdiv,我就解决了这个问题。但我仍然不明白为什么边距在其他 divs 中不起作用。

你可以see my fiddle here.

使用的css是这样的:

section.module.parallax {
  height: 600px;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-attachment: fixed;
  background-size: cover;
}

section.module .test{
    margin-top: 40px;
    background-color: #BCEF2F;
}

您正在查看 collapsing margins。要修复它,请将 overflow:auto 添加到您的容器 div:

.container {
    max-width: 960px;
    margin: 0 auto;
    overflow:auto;
}

jsFiddle example