【发布时间】:2012-07-06 11:37:58
【问题描述】:
这是我针对以下问题的 jsFiddle:http://jsfiddle.net/arelia/Rruxf/
我想要一个位于正文最顶部的页眉和一个位于正文最底部的页脚。我在页眉和页脚之间有一个内容 div(位置:相对),当我在 div 周围设置边距时,我绝对定位的页眉和页脚从它们的顶部/底部位置移动了该边距的高度(这也发生在我尝试在 div 中的段落上方和下方设置边距)。在小提琴中,您可以看到页脚没有附加到底部,即使它是绝对定位的(我继续并将页眉设为静态,因为静态给出了预期的结果)。 如何将页眉和页脚定位到正文的顶部和底部,而不让中间的内容移动这两个元素?如果 position: absolute 元素被移出流程,为什么要有什么影响他们的位置吗?
我尝试在此处和 Google 上搜索“CSS 边距影响绝对值”和其他一些短语,但均无济于事。我在开发者工具中使用它时发现了这一点:
- 指标显示正文是 html 元素的高度减去一个边距(仍然影响页脚的边距)的量。因此,主体必须拉伸到内容 div 的高度,因为主体内的文档流中没有其他内容可以定义其高度。但是该高度在内容结束处而不是在边距之后结束。它不应该包括边距吗?
- 如果我将正文的高度设为 100%,页脚位置 自身到视口的底部,然后保持固定 当我滚动时发现。为什么它不附着在底部 主体而不是视口的底部?
【问题讨论】:
-
有什么理由让页脚绝对定位在首位?它已经在您想要的底部。
-
谢谢,@sachleen。这是因为我不希望页脚紧跟在内容之后。如果内容很短,我希望页脚位于视口底部。如果内容很长,我希望它跟随内容并触摸页面的左下角和右下角。那有意义吗?在这里,我分叉了 jsFiddle 并明确地将页脚设为静态。它的位置正确,内容很多,但内容很少,它不在视口的最底部:link
标签: css positioning margin absolute