几个小时后,我设法找到了解决问题的方法,所以问题不是“如何”,而是“为什么会这样”。这是我的精简示例:
<div id="header">
<div id="header-element">header</div>
</div>
<div id="footer">footer</div>
CSS:
#header {
width: 100%;
position: relative;
padding-bottom: 5%;
}
#header-element {
position:absolute;
bottom: 0;
}
#footer {
position: relative;
margin-top: 5%;
}
和 jsFiddle - http://jsfiddle.net/H7jwm/3/。
我的问题是如何使用百分比来定位那些相对定位的元素,第一个元素位于文档顶部的某个位置,第二个元素位于第一个元素的位置。我已经通过给予padding-bottom
第一个和margin-top
第二个来实现这一点,但我必须用蛮力解决 - 尝试每一个远程逻辑解决方案。现在,如果您删除填充,margin-top
则第二个元素的边距成为该元素与文档顶部之间的边距,而不是第一个元素,并且该第一个元素将剩余空间“占用”到顶部。
问题是为什么填充会这样工作?或者,换个说法,填充如何与相对定位一起工作?