分享

CSS高手布局:让footer完美处于网页下方

 昵称18306382 2014-06-30

在用DIV+CSS布局时,底部有的时候总会出现问题,找了N久,总算找到一篇文章。分享一下:

在我们网页布局的时候,往往网页在不够一个屏幕的时候,(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%; 


3、加上页头页脚和内容部分,为了让 footer 在最下方,我们当然要把 footer“请出”wrapper 之外。当然,这样高度就超过一屏了,别急,后面有解决办法。 


#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; 


4、为了让 footer 能够刚好在最下方,我们能给 footer 加一个等于自身高度的上方的负边距强制把他向上推一个自身的高度,即 margin-top: -50px; 。不过这样的话当内容超过一屏我们会看到内容会盖在 footer 的上方,显然这是失败的。所以我们还要给 content-box 和 sidebar 加一个父级元素,设定他的下方内补丁等于 footer 的高度,强制把 content-box 和 sidebar 向上推一个 footer 的高度。同时,因为 content-box 和 sidebar 是浮动元素,所以我们还要让他 闭合浮动元素 。 这样就比较完美了。 


#out-content { 

padding-bottom: 50px; 

#out-content:after { 

  clear: both; 

  display: block; 

  font: 1px/0px serif; 

  content: "."; 

  height: 0; 

  visibility: hidden; 

* html #out-content { 

height: 1%; 

#footer { 

height: 50px; 

background: Background; 

margin: -50px auto 0; 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约