元素的边缘

时间:2016-07-17 13:09:35

标签: html css margin

我有这个简单的html和css

body{
  background-color: black;
  padding:0;
  margin: 0;
  box-sizing: border-box;
}

#ctr{
  height: 500px;
  width: 200px;
  margin: 0 auto;
  background-color: red;

}

#ctr > .box{
  background-color: white;
  height: 200px;
  width: 200px;
  border: 1px solid black;
  margin-top:10px;
}
<div id = "ctr">
  <div class = "box">
    <div class="something1"></div>
    <div class="something2"></div>
  </div>
</div>

我正在尝试将margin-top添加到红色div(ctr id)中的白盒子(盒子类)中,但是整个红色div正在获得边距而不仅仅是白色div。

这是一个例子的jsfiddle。 https://jsfiddle.net/6tvrwxhg/

2 个答案:

答案 0 :(得分:1)

overflow:auto(或hidden)添加到父级(#ctr

body {
  background-color: black;
  padding:0;
  margin: 0;
  box-sizing: border-box;
}

#ctr {
  height: 500px;
  width: 200px;
  margin: 0 auto;
  background-color: red;
  overflow: auto;
}

#ctr > .box{
  background-color: white;
  height: 200px;
  width: 200px;
  border: 1px solid black;
  margin-top:10px;
}
<div id="ctr">
  <div class="box">
    <div class="something1"></div>
    <div class="something2"></div>
  </div>
</div>

好的answer

中的更多信息

https://www.w3.org/TR/CSS2/box.html#collapsing-margins

答案 1 :(得分:1)

这是父/第一个孩子边距折叠,如果没有边框,填充,内联内容或间隔来分隔父母和子女,则会发生这种情况。因此,您可以在父

上添加border-top

body {
  background-color: black;
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}
#ctr {
  height: 500px;
  width: 200px;
  margin: 0 auto;
  background-color: red;
  border-top: 1px solid transparent;
}
#ctr > .box {
  background-color: white;
  height: 200px;
  width: 200px;
  border: 1px solid black;
  margin-top: 10px;
}
<div id="ctr">
  <div class="box">
    <div class="something1"></div>
    <div class="something2"></div>
  </div>
</div>

或者您可以向父元素添加填充或使用overflow: hidden

body {
  background-color: black;
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}
#ctr {
  height: 500px;
  width: 200px;
  margin: 0 auto;
  background-color: red;
  overflow: hidden
}
#ctr > .box {
  background-color: white;
  height: 200px;
  width: 200px;
  padding-top: 1px;
  margin-top: 10px;
}
<div id="ctr">
  <div class="box">
    <div class="something1"></div>
    <div class="something2"></div>
  </div>
</div>

您可以在Mastering margin collapsing

了解详情