我有以下内容:
<div>
<p>some content</p>
</div>
或:
<div>
some content
</div>
没有:
<p>some content</p>
...... div的定位不同。似乎div中的块内容正在影响div的外(上)边距。 div被推下来了吗?我认为div内的内容就像一个块一样不会影响包含块的边距。为什么div的边距受其内容的影响?
答案 0 :(得分:13)
你在谈论collapsing margins。
请参阅:http://jsfiddle.net/thirtydot/vgJxX/
您可以通过添加到父元素来“修复它”:
border
。padding
。position: absolute
。float: left
。<强> HTML:强>
<div>
<p>I'm doing the "broken" thing you hate.</p>
</div>
<div id="d2">
<p>I'm not!</p>
</div>
<div id="d3">
<p>Neither am I!</p>
</div>
<div id="d4">
<p>Me neither!</p>
</div>
<强> CSS:强>
div {
background: #ccc
}
p {
margin: 20px 0
}
#d2 {
border: 1px solid red
}
#d3 {
padding: 1px
}
#d4 {
position: absolute;
bottom: 0;
width: 100%
}
答案 1 :(得分:3)
因为margin collapsing。在div
添加边框或填充。