我现在编写了大约一个星期的时间,我正在通过自己学习所有内容(希望能解释我在此代码中的许多错误)。
我已经尝试了十几个例子让我的页脚坚持到页面底部。 当我尝试更改包装器或页脚的“position:absolute”时,它要么在浏览器窗口和页眉之间留一个间隙,要么将页脚放在顶部。
我不知道如何解决这个问题。 (我的代码的一些提示也非常感谢!)
HTML http://pastebin.com/ksgJSUpz
CSS http://pastebin.com/i9nPtYkU
谢谢!
答案 0 :(得分:0)
问题是您在整个代码中一直使用position:absolute
。绝对定位会破坏文档的流程。
如果使用相对定位或者根本没有定义定位(静态位置),则元素将一个接一个地运行。使用您的代码,您必须计算每个元素的高度,然后手动开始下一个元素的结束。发生这种情况是因为绝对定位元素不会将其他元素向下推。他们好像没有身高。例如,您的标题高度为100px;然后你用绝对定位和前100px开始你的信息;
你的页脚会坐在你要告诉他的绝对位置。问题是你不知道那个位置是什么,因为你有一个可变高度的元素。如果你把`bottom:0;'绝对定位时,标题将位于其父级的底部。在您的情况下,它的父级是没有定义特定高度的包装器。所以#wrapper获取其内容的高度,但由于它的内容都是绝对定位在它内部,正如我所说,打破流程它不会从它们获得任何高度。相反,#wrapper获取窗口的高度而不是整个文档。
最好的办法是在没有绝对定位的情况下重新设计页面。
一些快速修复方法是为您的包装器提供类似height: 1200px;
的特定高度
这将迫使你的页脚去坐在1200像素的底部
Example with height at wrapper
另一种解决方案是为您的页脚使用固定定位。即使在滚动时,这也会使页脚粘在窗口的底部。
Example with fixed positioning
但实际上你应该做的是从一开始就重新设计页面,避免在不需要的地方进行绝对定位。