最小高度100%页脚保持在底部的布局方法(1)

来源:电子商务师    发布时间:2012-05-03    电子商务师视频    评论

  有时候,我们用CSS创建一个高度自适应布局,如何保证页脚(footer)在内容不超过一屏的情况下始终保持在布局最下方是一个比较头疼的事。我看过一些利用绝对定位的例子,但总感觉不是那么完美,经过一下午的研究总结出一个利用负值外补丁的方法来实现这个效果的方法,兼容IE5.0+,Opera 8.5+,Firefox 1.5+。下面我们看步骤:
  1、为了让浏览器识别高度100%我们需要先给 html 和 body 加上一个高度值,同时清除所有元素的 margin 和 padding。顺便提一下,经过我的测试,html 和 body 的 height: 100%; 等于整个浏览器窗口的总高度,无论内容是否超过一屏。而它们下一级子元素 height: 100%; 则等于第一屏的高度。如何,是不是有点不好理解?

  * {

  margin: 0;

  padding: 0;

  }

  html, body {

  height: 100%;

  }

  2、因为上面提到的问题,所以为了让布局自适应高度,我们要加上 min-height: 100%;,虽然IE不支持这个属性但是IE的 height: 100%; 有同样的作用:

  #wrapper {

  min-height: 100%;

  }

  * html #wrapper {

  height: 100%;

  }

  这样,一个最简单的最小高度满一屏的自适应布局就做好了。为了便于查看,我加了一些宽度和背景色修饰,如下:

  * {

  margin: 0;

  padding: 0;

  }

  html, body {

  height: 100%;

  text-align: center;

  font: 12px/1.4 Verdana, sans-serif;

  background: #f00;

  }

  #wrapper {

  width: 770px;

  min-height: 100%;

  background: #ccc;

  margin: auto;

  text-align: left;

  }

  * html #wrapper {

  height: 100%;

  }<!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">

  <head>

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

  <title>example 2</title>

  <style type="text/css">

  /*<![CDATA[*/

  * {

  margin: 0;

  padding: 0;

  }

  html, body {

  height: 100%;

  text-align: center;

  font: 12px/1.4 Verdana, sans-serif;

  background: #F00;

  }

  #wrapper {

  width: 770px;

  min-height: 100%;

  background: #ccc;

  margin: auto;

  text-align: left;

  }

  * html #wrapper {

  height: 100%;

  }

  #header {

  background: Green;

  height: 40px;

  }

  #sidebar {

  float: left;

  width: 200px;

  background: Gray;

  }

  #content-box {

  float: right;

  width: 570px;

  background: Olive;

  }

  #footer {

  height: 50px;

  background: Background;

  width:770px;

  margin: auto;

  }

  /*]]>*/

  </style>

  </head>

  <body>

  <div id="wrapper">

  <div id="header">此处显示 id &quot;header&quot; 的内容</div>

  <div id="content-box">此处显示 id &quot;content-box&quot; 的内容</div>

  <div id="sidebar">此处显示 id &quot;sidebar&quot; 的内容</div>

  </div>

  <div id="footer">此处显示 id &quot;footer&quot; 的内容</div>

  </body>

  </html>

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答