2012-04-04 67 views
2

我有以下网页。100%高度 - 动态高度页脚底部

<body> 
<div id="everything"> 
<div id="top_header">TOP BAR WITH INFO. FIXED HEIGHT</div> 
<div id="content"> 
<div id="header"><h1> MENU</h1></div> 
<div id="body">CONTENT</div> 
</div><!--end content--> 
<div id="footer">DYNAMIC HEIGHT DEPENDING ON THE LINKS IN THE FOOTER</div> 
</div><!--end everything--> 
</body> 

和样式:

<style type="text/css"> 
body { 
    background-color: #FFFFFF; 
    font: 13px arial; 
    margin: 0; 
    padding: 0; 
    width: 100%; 
} 
#everything { 
    background-color: #FFFFFF; 
    min-height: 100%; 
    margin: auto; 
    width: 100%; 
} 
#content { 
    display: block; 
    margin: auto; 
    width: 1000px; 

} 
#header { 
    padding-bottom: 25px; 
    background-color:#666699; 
    height:60px; 
} 
#body { 
    background: none repeat scroll 0 0 #FFFFFF; 
    margin: 0 auto; 
    padding-bottom: 23px; 
    background-color:#CC3333; 
    height:1500px; 
} 
#footer { 
    display: inline-block; 
    position: absolute; 
    bottom:0px; 
    width: 100%; 
    background-color:#FF6600; 
    height:70px; 
} 
#top_header { 
    width:100%; 
    background-color:#0066CC; 
    height:30px; 
} 
h1{ 
    margin:0; 
} 
</style> 

我的页脚的高度是动态的,我不能改变的HTML结构,只有CSS。 当我在较小的屏幕上看到网页并且“body”的高度大于视口时,没有问题,但是如果我在较大的屏幕上查看网页并且“body”的大小小于视口,则页脚不坚守底部。另外,如果“body”的大小很大(如本例中那样),它不会将页脚推到底部。 你能不能帮助我让页脚始终粘在视口的底部而不知道页脚的高度以及所有内容的“body”的高度?

感谢, 米哈伊

+0

您是否需要在身体后面看到页脚?或者,就在视口的底部(这样如果身体的高度非常小,页脚仍然粘在底部)? – mshsayem 2012-04-04 08:24:07

+0

如果身体的高度非常小,页脚仍然会粘在底部 – 2012-04-04 08:54:07

回答

0

可以定义页脚位置相对和绝对去除

#footer{ 
    position:relative; 
} 
+0

是的,这在这个特定情况下有效。下一步将不会在身体上具有1500px的高度,即使我在“body”中没有太多内容,页脚也会粘贴到底部,并且所有内容都是视口的100%高度。 – 2012-04-04 09:01:08

0

这不是完全可以在CSS2,特别是灵活的高度页脚被正确地推下通过扩大内容。您可以使用高度可变的方式将其粘贴在屏幕底部,但由于您之前不知道该特定高度,因此无法相应地设置内容边距/填充底部。

我建议你在页面加载后通过JavaScript测量页脚高度,并将其应用为内容填充/页边距,这会让你围绕着你面临的唯一真实问题。

另一种选择是通过使用包装和显示来利用表:table-row/table-cell。 我已经在这里回答了一个类似的问题:https://stackoverflow.com/a/9946474/759144