【发布时间】:2015-03-25 22:53:43
【问题描述】:
检查这个极其简单的 html 结构。一个 div 在另一个里面,内部(绿色)div 有margin-top: 100px,外部(红色)div 没有顶部边距。外部 div 是内部 div (100px) 的两倍 (200px)。
那么您希望结果是什么样的?如果你像我一样,你会得到与你自然期望得到的相反的结果。
我的问题不是如何防止这种情况。我的问题是为什么这种情况在所有浏览器中始终以这种方式发生?我的意思是,这显然必须是它的工作方式,但对我来说这非常违反直觉。
.red {
background-color: #a00;
height: 200px;
}
.green {
background-color: #0a0;
margin-top: 100px;
height: 100px;
}
<div class="red">
<div class="green"></div>
</div>
【问题讨论】:
-
你想要达到什么目的?
-
你希望发生什么,因为这对我来说似乎是合理的
-
我想要实现的是理解为什么以浏览器的方式呈现它是有意义的?
-
@你觉得子元素的margin-top不应用在父元素内部,而是冒泡到父元素是合理的吗?
-
@connexo 我认为这很好地解释了它Answer。