【转】DIV+CSS页面让footer始终在底部
平 时拿CSS布局都是一些内容比较多的网站,前两天用CSS+DIV弄了个内容少的页面,发现了一个小问题,可能大家都会遇到,那就是网站FOOTER的定 位,如果内容比较少的话,页面的FOOTER就会随着内容的减少跑到上面去,不是乖乖的在下面呆着,害得我研究了半天找高人终于给搞定了,也算一个小小的 技巧给大家分享
首先我们要在外层设定一个DIV(content )让这个DIV的高度等于浏览器的高度,然后将footer这个DIV设定为content的一个子DIV ,并使用绝对定位,使它固定到content的底端;这是大概的思路,
下面是实现的方法:
<body>
<div id="content">
<div id="main">
<h1>main</h1>
<p>你可以改变浏览器窗口的高度,来观察footer效果。</p>
<p>文字文字文字文字文字文字文字文字文字文字</p>
</div>
<div id="footer"> <h1>Footer</h1><div>
</div>
</body>
然后我们写下CSS:
body,html {
margin: 0;
padding: 0;
font: 12px/1.5 arial;
height:100%;
}
#content {
min-height:100%;
position: relative;
}
#main {
padding: 10px;
padding-bottom: 60px; /* 20px(font-size)x2(line-height) + 10px(padding)x2=60px*/
}
#footer {
position: absolute;
bottom: 0;
padding: 10px 0;
background-color: #AAA;
width: 100%;
}
#footer h1 {
font: 20px/2 Arial;
margin:0;
padding:0 10px;
}
首先把HTML和BODY的HEIGHT属性设为100%;保证content的高度能撑满浏览器;
然后把#content的高度也设置为100% ,但是这里我们使用了“min-height”属性,而不是的height属性,这是因为如果#main中的内容如果增加了,他的高度超过了浏览器窗口的 高度,那么如果把#content的高度仍然是100%,就会导致#footer仍然定位在浏器窗口的下端,从而遮盖了#content中的内容。
而使用min-height属性的作用就是使#content的高度“至少”为浏览器窗口的高度,而当如果它里面的内容增加了,他的高度会也跟随着增加,这才是我们需要的效果。
接下来,将#content设置为相对定位,目的是使他成为它里面的#footer的定位基准
然后把#foooter设置为绝对定位,并使之贴在#main的最下端。
但是要注意,如果当我们把#footer贴在#content的最下端以后,他实际上已经和上面的#main这个div重叠了,为了避免覆盖#main中 的内容,我们在#main
相关文档:
分类:Web前端
IE6能识别下划线"_"和星号" * ",IE7能识别星号" * ",但不能识别下划线"_", IE8能识别" \9",但不能识别下划线"_", 而firefox两个都不能认识,却可以识别‘!important’。等等
书写顺序,一般是将识别能力强的浏览器的CSS写在后面。下面列举常用的CSS hack方法
1:!importan ......
scrollbar-face-color: #000000;
scrollbar-shadow-color: #FFC300;
scrollbar-highlight-color: #000000;
scrollbar-3dlight-color: #FFC300;
scrollbar-darkshadow-color: #000000;
scrollbar-track-color: #000000;
scrollbar-arrow-color: #FFC300;
如果使用Dw或者其 ......
参考资料:http://www.blueidea.com/tech/web/2007/4546.asp,由浅入深漫谈margin属性 - 网页制作 - 蓝色理想
直接上代码:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>aaa</title>
<style type="text/css">
html { }
......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<!-- www.div-css.com 网站标准化 2007-4-16 -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
......
网页可见区域宽: document.body.clientWidth;
网页可见区域高: document.body.clientHeight;
网页可见区域宽: document.body.offsetWidth (包括边线的宽);
网页可见区域高: document.body.offsetHeight (包括边线的宽);
网页正文全文宽: document.body.scrollWidth;
网页正文全文高: document.body. ......