【发布时间】:2011-12-06 06:18:00
【问题描述】:
我正在为 div 元素设置边距,但 body 元素也获得了该边距。
考虑这段代码:
<!-- HTML -->
<body>
<div>
</div>
</body>
<!-- CSS -->
<style>
html,body {
height:100%;
margin:0;
padding:0;
outline:1px solid blue;
}
div {
margin:20px;
outline:1px solid red;
}
</style>
这是结果和问题:
到目前为止,我已经通过向 body 元素添加 border:1px solid transparent; 属性解决了这个问题。这会破坏 100% 的高度,因为滚动条是由于 1px 边框而出现的。为什么会这样?
可能的解决方案(感谢您的帮助):添加 padding-top:1px 和 margin-top:-1px,这样滚动条不会破坏 100% 的高度,并且您可以避免边距折叠.
【问题讨论】:
-
最佳解决方案可能是在父级上添加
overflow:auto;,正如@Chris Nicholson 提供的链接中所述