首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

让footer老是显示在页面的最底部

2012-10-30 
让footer总是显示在页面的最底部问题描述:在页面中可能有这样的footer,我们期望它永远在页面的最下方。当页

让footer总是显示在页面的最底部

问题描述:

在页面中可能有这样的footer,我们期望它永远在页面的最下方。
当页面高度足够的时候,始终保持与浏览器底边有一定得距离:

让footer老是显示在页面的最底部

如果仅是设置footer的style="position:absolute;bottom:10px",当浏览器高度小于内容高度时,footer就会覆盖住内容。如下图:

让footer老是显示在页面的最底部

我们所期望的是当浏览器高度不足时,footer依然位于"内容"的下方,拖动滚动条才能显示。

解决方案:

完整html代码如下,
-------------------------------

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html?xmlns="http://www.w3.org/1999/xhtml"?xml:lang="en-GB">
<head>
????<title>example</title>
????<meta?http-equiv="Content-Type"?content="application/xhtml+xml; charset=utf-8"?/>
????<style?type="text/css">
????html, body {
??? ??? margin:0;????
/* 必要,否则纵向滚动条不会消失 */
??? ??? height:100%;?/* 必要,以便之后给container设置高度百分比 */
??? }
??? #container {
??? ??? min-height:100%;?
/* 此属性需要doctype的支持,见第一行。 否则不会生效。在IE中,写height:100%就可以工作,但其他浏览器需要设置min-height。*/
??? ??? position:relative;?/* 必要 */
??? }
??? #body {
??? ??? padding-bottom:50px;????/* 等于footer的高度 */
??? ??? height:200px;?

??? ??? border:solid 1px red;
??? }
??? #footer {
??? ??? position:absolute;?
/* 必要 */
??? ??? bottom:0;?/* 必要 */
??? ??? height:50px
??? }

????</style>
</head>
<body>

<div?id="container">
????<div?id="body">
??? ??? blah....
????</div>
????<div?id="footer">
??? ??? I am footer!
????</div>
</div>
</body>
</html>
-------------------------------

如果使用的doctype不支持min-height,以上代码在firefox中仍可工作,但在IE中失效。解决办法如下:

-------------------------------

??? #container {
??? ??? *height:100%;??/* “*”使这句只在ie中生效 */
??? ??? min-height:100%;?/* 对firefox生效 */
??? ??? position:relative;
??? }

?? 其他代码与方案1相同。

-------------------------------

参考文章:
1, http://matthewjamestaylor.com/blog/keeping-footers-at-the-bottom-of-the-page
2, http://ryanfait.com/resources/footer-stick-to-bottom-of-page/

?

?

摘自:http://zaocanhebaodan.blogbus.com/logs/40779139.html

热点排行