我有一本CSS教材,上面有一个例子用来解释发生外边距重叠的问题:
效果:
<div style="margin:10px; background:red;">
<p style="margin:20px; background:yellow;">aaaaaaa</p>
</div>
书上的解释是:
出现这种情况(外边距叠加)是由于具有块级子元素的元素,在计算其高度的方式造成的。
如果元素没有垂直边框或内边距,那么它的
高度就是它包含的子元素的顶部和底部边框边缘之间的距离。因此,包含的子元素的顶部和底部外边距就突出到容器元素的外边。有一个简单的解决方案:通过添加一个垂直边框或内边距,外边距就不再叠加了,而且元素的高度就是它包含的子元素的顶部和底部外边距边缘之间的距离。
问题:
1、这个红字部分的“高度”,是不是就是指包含元素(div)的内容区域高度呢?
2、如果是的话,那可不可以理解成发生外边距重叠的原因就是包含元素的内容区域的高度不够?
如果是这样的话,那我给div元素的css中加上“height:200px;”,因为height属性就是给元素的内容区域赋高度。
但是还是发生了外边距重叠,这是为什么呐?
问题有点绕,而且因为我对盒子模型还不太了解,问题描述的也不太清楚,所以麻烦大家仔细的读一下,回答的稍微详细一些,写这么多不容易,谢谢大家了!:)