网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网页制作 > CSS
网页制作:Dreamweaver教程,FrontPages教程,Javascript教程,HTML教程,CSS教程,心得技巧,DHTML教程,网页特效,Discuz!论坛
本月文章推荐
.CSS固定定位{position:fixed}.
.IE对网页中引入CSS样式表的限制.
.CSS的长度单位(em)与em标签.
.与表格边框有关的CSS语法.
.CSS 循序渐进(四)表里春秋.
.div+css布局漫谈.
.点击按钮来改变该页面调用的css文.
.CSS创建圆角框.
.如何用CSS来控制网页字体的显示样.
.CSS+js放大镜.
.CSS 循序渐进(二)字的艺术.
.CSS层叠样式的主次顺序.
.需要掌握的八个CSS布局技巧.
.网页风格化 用CSS实现皮肤适时切.
.CSS解决图片下面有空隙的简单方法.
.css弹出层+屏蔽背景页面(兼容fie.
.CSS样式和JavaScript脚本是否放置.
.CSS Sprites技术以及图片优化.
.CSS特点及加入网页的四种方法.
.如何用CSS让文字居于div的底部.

使用CSS定位页面的“footer”

发表日期:2008-12-3


基本思路

首先考虑外层设置一个容器 div ,id 设为 #container ,使他的高度为浏览器窗口的高度,然后将 #footer 这个 div 设置为 #container 的子 div,并使用绝对定位的方式,使他固定到 #container 的底端,以实现希望的效果。

点击这里察看案例页面效果。 改变浏览器的高度和宽度,可以看到 Footer 部分的效果。

代码实现

下面先考虑HTML结构,这个演示页面的HTML代码非常简单。

<div id="container">
<div id="content">
<h1>Content</h1>
<p>请改变浏览器窗口的高度,以观察footer效果。</p>
<p>这里是示例文字,………,这里是示例文字。</p>
</div>
<div id="footer">
<h1>Footer</h1>
</div>
</div>
然后设置CSS,

body,html {
margin: 0;
padding: 0;
font: 12px/1.5 arial;
height:100%;
}
#container {
min-height:100%;
position: relative;
}
#content {
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;
}
1:首先要给 html 和 body 元素设置高度(height属性)为100% (第5行),这样先保证根元素的高度撑满整个浏览器窗口,然后下面才能使 #container 的高度撑满整个浏览器窗口。至于为什么用同时设置 html 和 body 元素,是因为 Firefox 和 IE 认为的根元素不一样,因此这里都给他们设置上。

2:然后把 #container 的高度也设置为 100% (第8行),但是要注意,这里使用了“min-height”属性,而不是普通的 height 属性,这是因为我们要考虑到,如果 #content 中的内容如果增加了,他的高度超过了浏览器窗口的高度,那么如果把 #container 的高度仍然是 100%,就会导致 #footer 仍然定位在浏器窗口的下端,从而遮盖了 #content 中的内容。而使用 min-height 属性的作用就是使 #container 的高度“至少”为浏览器窗口的高度,而当如果它里面的内容增加了,他的高度会也跟随着增加,这才是我们需要的效果。

但是需要说明的是,在 Firefox 和 IE7 中,支持 min-height 属性,而 IE6 中,并不支持 min-height 属性,但是“歪打正着”的是,IE6 中,会把 min-height 属性解释为 height 属性,但是 IE6 中 height 属性的效果却是 min-height 本来应该具有的效果,也就是说,在 IE6 中,子 div 的高度会撑大父 div 的高度。所以这样正好可以实现在 IE6、IE7 和 Firefox 中都可以正确实现我们希望的效果了。

3:接下来,将 #container 设置为相对定位(第9行),目的是使他成为它里面的 #footer 的定位基准,也就是所谓的“最近的定位过的祖先元素”。

4:然后把 #foooter 设置为绝对定位(第17行),并使之贴在 #container 的最下端(第18行)。

5:但是要注意,如果当我们把 #foooter 贴在 #container 的最下端以后,他实际上已经和上面的 #content 这个div 重叠了,为了避免覆盖 #content 中的内容,我们在 #contetn 中设置了下侧的 padding,使 padding-bottom 的值等于 #footer 的高度(第13行),就可以保证避免覆盖 #content 的文字了,这个高度的计算注意代码中的注释中给出的计算方法(第14行)。

上一篇:CSS高级教程 页面布局 人气:269
下一篇:css实现热点(hotspot,地图提示) 人气:217
浏览全部CSS的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐