2014-12-05 75 views

回答

1

虽然我写的问题,我想出了解决方案:

这是一个live demo

footer at bottom http://www.cucuza.com/gustavo/footer3.jpg

,这是代码:

HTML:

<div id="wrapper"> 
    <div id="header">Header</div> 
    <div id="content">Content</div> 
    <div id="footer">Footer</div> 
</div> 

CSS:

html, 
body { 
    margin:0; 
    padding:0; 
    height:100%; 
    background:#ccc; 
} 
#wrapper { 
    min-height:100%; 
    position:relative; 
    width: 500px; 
    margin: 0 auto; 
    background:#fff; 
} 
#header { 
    background:#5ee; 
} 
#content { 
    padding-bottom:80px; 
    min-height:100%; 
} 
#footer { 
    width:100%; 
    height:80px; 
    position:absolute; 
    bottom:0; 
    left:0; 
    background:#ee5; 
} 

工作原理:

  • 由于高度,html和body保持展开:100%
  • #wrapper中的min-height属性保持展开到全高,当内容高于100%时,#wrapper扩展到浏览器之外画布(滚动)。
  • #wrapper具有相对位置,因此#footer的绝对底部位置始终使页脚始终位于#wrapper的底部。
  • 具有与#footer高度相同的值的#content padding-bottom属性可防止#footer和#content重叠,因为#footer将始终覆盖#wrapper的底部并覆盖#content,如果此操作一个到达#wrapper的底部。你不能把这个属性放在#wrapper中,因为高度会导致100%(100%+ padding)和#footer超出屏幕。
  • #wrapper,而不是#content,具有背景颜色属性,因为它是始终完全展开的属性。
+1

它可能是有用的,如果你解释为什么这个工程? – 2014-12-05 14:07:15

+1

我已经添加了“如何工作”部分。 – Gustavo 2014-12-05 17:31:58

+0

不幸的是#content没有填充空间,所以没有真正解决定义的问题。适合你,但我有一个需要有内容不是100%的宽度,所以不适用于我。 – cyberwombat 2015-05-31 22:54:26