为什么 margin 子元素会影响 body 元素?

Why does margin child element affect body element?

请您解释一下为什么 body 会受到其子项边距的影响?我不喜欢这种行为。在我看来,子项的边距 div 应该从其父项的边界到其边界计算。

例如: https://jsfiddle.net/2yejm7L5/

您可以看到蓝色的 div 会影响绿色 body 的边距,然后您会看到红色的 html 背景,我不希望这样。

就我而言,我不想编辑 body CSS 属性

如果您将正文 css 修改为以下内容,您将实现您的目标:

body {
  background-color: green;
  height: 100%;
  width:100%;
  margin:0;
  position: absolute;
}

/* 另一种技巧 */ 删除 top-margin:50px,然后用另一个 div 包裹你的 toto div 并给它 padding-top:50px;如下所示:

html {
  background-color: red;
  height: 100%;
}
body {
  background-color: green;
  height: 100%;
  margin:0;
}

#container { padding-top:50px; }

.toto {
  background-color: blue;
  width: 100px;
  height: 100px;
}
<div id="container">
  <div class="toto">

  </div>
</div>