使用CSS定位页面的“footer”

基本思路

首先考虑外层设置一个容器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行)。

时间: 2024-10-30 05:57:34

使用CSS定位页面的“footer”的相关文章

css定位页面

CSS的4大核心基石:盒子模型.标准流.浮动.定位.只有把这些核心基础掌握到烂熟于胸的程度,才能游刃有余地进行设计. colorandy读者提出这样一个关于页面布局的问题: "如果有一个footer层,我想让他固定出现在整个页面的最下方,不随着页面中的内容而变化,CSS中要怎样设?比如里面是一些版权信息.因为我整页的内容比较少,footer老跟着内容跑到上面去,很不美观." 这个问题如果在以前使用表格布局,并不困难,只要给页面的最外层表格高度设置为100%就可以了,然而,在Web标准的

CSS定位:几种类型的position定位的元素

文章简介:定位属性看起来好像很好理解,但它的运作与它在表面所看到的有点儿不一样.你可能会觉得的是相对定位更加类似绝对定位.当在做布局设计的时候你通常会想使用浮动并在指定的元素上应用定位来打破布局. 当人们刚接触布局的时候都比较倾向于使用定位的方式.因为定位的概念看起来好像比较容易掌握.表面上你确切地指定了一个块元素所处的位置那么它就会坐落于那里.可是定位比你刚看到的时候要稍微复杂一点.对于定位来说,有一些东西会绊倒新手,所以在它成为你的惯用技巧前你需要掌握它们. 一旦你更深入地了解了它是怎么运作

CSS定位一:动态转换

css|动态|转换 通过在CSS中设置属性,我们可以准确的定义一个页面的样式,如颜色.字体.边框等.现在我们要讲的CSS定位主要是在页面的布局和控制上进行定义,使您的页面从这两个方面都展现的非常完美,更加富有动感. 另外,在讲解之前,我们首先介绍两个定义:相对定位和绝对定位.相对定位就是允许在文档的原始位置上进行偏移.而绝对定位则允许任意定位. 实现CSS的定位最终还是要靠属性.我们来看一下定位属性的详细列表(见下图): 我们在下面举一个例子,其中带了一点Script的内容,我们来看看它是如何实

CSS定位二:空间定位

css 在这一节里,我们来看一个利用z-index定位的例子,这个例子的效果在这里. 我们看到例子中的两幅图片和一段文字分别处于不同的空间位置,文字覆盖在那朵花的图片上,而挥动小旗的小老鼠却又覆盖在文字的上面.那么这种效果是怎样实现的呢?这里利用了CSS定位的z-index属性,代码如下: <html> <head> <title>zindex</title> <style type="text/css"> <!-- .

Dreamweaver 入门:使用CSS设置页面格式

css|dreamweaver|页面 本文章介绍如何在 Dreamweaver 中使用层叠样式表 (CSS) 设置页面中的文本格式.您可以使用 CSS 以 HTML 无法提供的方式来设置文本格式和定位文本,从而能更加灵活自如地控制页面的外观. 了解 CSS 层叠样式表 (CSS) 是一系列格式设置规则,它们控制 Web 页面内容的外观.使用 CSS 设置页面格式时,内容与表现形式是相互分开的.页面内容(HTML 代码)位于自身的 HTML 文件中,而定义代码表现形式的 CSS 规则位于另一个文件

菜鸟学自动化测试(五)-----selenium命令之定位页面元素

定位页面元素 对于很多selenium命令,target域是必须的.Target在web页面范围内识别UI元素,它使用locatorType=location的格式.在很多情况下,locatorType可以省略,下面举例方式来描述各种类型的locatorType. 假如,有如下一段HTML代码: html> <body> <form id= "loginForm" > <input name= "username" type= &

使用CSS3中新的伪类更轻松地定位页面元素

在 Web http://www.aliyun.com/zixun/aggregation/17799.html">开发过程中,开发人员经常会通过使用 CSS 来实现页面所需的样式效果.例如:利用服务器端代码或 JavaScript 脚本生成条纹样式的表格,或为了要为多个页面元素中的一部分添加样式,不得不使用大量带有额外 class 属性的标签. 这些情况在 CSS3 出现后变得非常简单!CSS3 定义了一系列非常神奇的页面元素选择器,通过它们,这个过程将变得简单而迅速.元素选择器是一种模

iPad创建简单的演示目标CSS的页面

译自:iPad Orientation CSS iPad终于发布了,那么如果用样式区分iPad和iPhone中的safari浏览器,Jason Grigsby做了一个有用的实验. 就绝大部分而言,iPad上的移动版safari和iPhone上的事一样的.我发现的一个不同是,iPad上的webkit支持基于方向(orientation)的CSS媒体查询(media query)声明. 我为iPad创建了一个简单的演示目标CSS的页面. 在CSS中使用orientation 非常简单,代码就行这样:

CSS定位组件CSS 定位方式

css 在HTML中并无法直接定义要显示的文字或图文件在画面的那个位置...  只能一顺序来显示...  但是CSS提供3个新的性质运用..  top,left,position...  left相当于x轴,top相当于y轴,position则是绝对(abslute)或者相对(relative)位置..  举个例子:  <html>  <head>  <meta content="text/html; charset=big5" http-equiv=Co