顶部边距拉动顶部元素

时间:2019-04-16 18:26:52

标签: html css

当内部元素将上边距放到顶部时,容器将被拉低,因此白色部分显示在页面顶部。我该如何防止该白色部分?

.container {
  background: red;
  height: 500px;
}

.inner {
  margin-top: 100px;
  height: 50px;
  background: yellow;
}
Why there is white section in here ??
<div class="container">
  <div class="inner"></div>
</div>

3 个答案:

答案 0 :(得分:2)

将外部元素的溢出设置为auto。您在示例中看到了collapsing margins

  

父母和第一个/最后一个孩子-如果没有边框,填充,内联   部分,创建的块格式上下文或清除以分隔   从其第一个子块的margin-top开始的块的margin-top;要么   无边框,填充,内联内容,高度,最小高度或最大高度   将块的边距与块的边距分开   最后一个孩子,那么这些利润就崩溃了。 倒塌的边距最终   在父母之外。

.container {
  background: red;
  height: 500px;
  overflow: auto;
}

.inner {
  margin-top: 100px;
  height: 50px;
  background: yellow;
}
Why there is white section in here ??
<div class="container">
  <div class="inner"></div>
</div>

答案 1 :(得分:0)

由于CSS Box Model,预期您得到的结果。

  

CSS框模型本质上是一个包装每个HTML元素的框。它包括:页边距,边框,填充和实际内容。

Box模型不同部分的说明:

  

内容-框的内容,其中显示文本和图像

     

填充-清除内容周围的区域。填充是透明的

     

边框-围绕边框和内容的边框

     

边距-清除边框以外的区域。边距是透明的

请参见此代码段中说明的空白边距和空白处的差异:

.container {
  background: red;
  height: 500px;
}

.inner {
  height: 50px;
  background: yellow;
}

.margin {
  margin-top: 100px;
}

.padding {
  padding-top: 100px;
}
<div class="container">
  <div class="inner margin">
    Inner div has a margin-top
  </div>
</div>
<hr>
<div class="container">
  <div class="inner padding">
    Inner div has a padding-top
  </div>
</div>
<hr>
<div class="container">
  <div class="inner">
    Inner div has no padding/margin
  </div>
</div>

答案 2 :(得分:0)

删除div .inner上的 margin-top:100px

您还可以使用margin-top:0; ,或top:0;但这不是必须的.​​..

DEMO

尝试一下:

html,body {margin:0}

.container {
background: red;
height: 500px;
}

.inner {
/*margin-top: 100px;*/
/*margin-top: 0;*/
/*top:0;*/
height: 50px;
background: yellow;
}

// ---------------      

<div class="container">
  <div class="inner"></div>
</div>