如何使用div+CSS将页脚始终控制在页面最下方的方法

雪花,是世界上最圣洁的花,当你静静的倾听天籁,尘世的浮躁与喧嚣,似乎都已离你远去,剩下的惟有纯净,那是心灵忘却一切的畅然,那是在没有尘埃的世界里,生命自由呼吸的平淡与安恬。

tml和body的高度并不一定相同,在内容少的时候,body的高度要小于html,当然这只会出现在body中的内容所占的空间高度小于浏览器的视口高度的时候,此时html的高度大于body的高度。网页中的元素都是以body最为参考,所以有必要保持html和body的高度相同。

CSS Code复制内容到剪贴板
  1. html,body{height:100%;}

第一种方法:
在body中使用两个容器,包括网页的页脚和另外一部分(container)。设置container的高度为100%;页脚部分使用 负外边距 保持其总是在最下方。

CSS Code复制内容到剪贴板
  1. html,body{
  2. height:100%;
  3. }
  4. .fl{
  5. float:left;
  6. display:inline;
  7. }
  8. #container{
  9. width:100%;
  10. height:300px;
  11. overflow:hidden;
  12. height:100%;
  13. border-bottom:70px#FFFFFFsolid;
  14. }
  15. .aside{
  16. width:30%;
  17. }
  18. .article{
  19. width:70%;
  20. }
  21. #footer{
  22. height:50px;
  23. width:100%;
  24. clear:both;
  25. margin-top:-50px;
  26. border-bottom:1pxsolid#e0e0e0;
  27. border-top:1pxsolid#e0e0e0;
  28. }


XML/HTML Code复制内容到剪贴板
  1. <divid="container">
  2. <divid="header">
  3. <div>
  4. <imgsrc=""width=height=alt=""/>
  5. <div>
  6. <p>fddfv</p>
  7. <p>容量:<span>24M</span>/<span>2G</span></p>
  8. </div>
  9. </div>
  10. </div>
  11. <divclass="asidefl">dsfcndsjkcnsd</div>
  12. <divclass="articlefl">cdsklcmdskcmkdslcmksdlckldsmcskl</div>
  13. </div>
  14. <divid="footer">footer</div>

第二种方法:使用绝对定位
这里我们使用到了position属性,让我们先来回顾一下position的基础用法:

  position有四个参数:static | relative | absolute | fixed

  position:static,意味元素没有被定位,元素会出现在文档本该出现位置,是页面元素默认的定位的方式,一般无需指定,除非想要覆盖之前设置的定位。

  position:relative,很明白,相对元素本该位置的偏移量  

CSS Code复制内容到剪贴板
  1. #nav{
  2. position:relative;
  3. top:15px;
  4. left:20px;
  5. }

  position:absolute,这时候元素已经脱离了文档,文档中已经没有自己的本该的位置了,但我们可以通过left、bottom、left和right来规定其在文档中位置。

CSS Code复制内容到剪贴板
  1. #nav{
  2. postion:absolute;
  3. botton:0px;
  4. }

  我们知道万物都是相对的,元素进行上面设置了后就保证nav元素始终保持在底部了呢?nav元素离botton为0px,是哪个为参照物呢,是父级元素还还是浏览器呢,其实这里分为两种情况:

  如果父级元素(父级元素的父级、父级的父级的父级......)设置postion时,则子元素此时相对的是父级的,所以当内容过多时,脚DIV不能被挤到底部去。

  如果父级元素(父级元素的父级、父级的父级的父级......)没有设置postion时,则子元素此时相对的是浏览器的,所以当内容过少时,脚DIV不能被挤到底部去。

好了,下面回到正题,同样需要保持html和body的高度相同,并且body需要添加另外的一些样式,footer需要使用绝对定位。

CSS Code复制内容到剪贴板
  1. body{position:relative;height:auto!important;height:100%;min-height:100%;}
  2. html{
  3. height:100%;
  4. }
  5. body{
  6. margin:0;
  7. padding:0;
  8. position:relative;
  9. height:auto!important;
  10. height:100%;
  11. min-height:100%;
  12. text-align:center;
  13. }
  14. .fl{
  15. float:left;
  16. display:inline;
  17. }
  18. #header{
  19. width:100%;
  20. height:80px;
  21. }
  22. #container{
  23. width:100%;
  24. height:300px;
  25. overflow:hidden;
  26. border-bottom:#FFFFFF60pxsolid;
  27. }
  28. .aside{
  29. width:30%;
  30. }
  31. .article{
  32. width:70%;
  33. }
  34. #footer{
  35. height:50px;
  36. position:absolute;
  37. width:100%;
  38. clear:both;
  39. bottombottom:0;
  40. left:0;
  41. border-bottom:1pxsolid#e0e0e0;
  42. border-top:1pxsolid#e0e0e0;
  43. }


XML/HTML Code复制内容到剪贴板
  1. <divid="header">
  2. <div>
  3. <imgsrc=""width=height=alt=""/>
  4. <div>
  5. <p>fddfv</p>
  6. <p>容量:<span>24M</span>/<span>2G</span></p>
  7. </div>
  8. </div>
  9. </div>
  10. <divid="container"style="border-bottom:#FFFFFF60pxsolid;">
  11. <divclass="asidefl">dsfcndsjkcnsd</div>
  12. <divclass="articlefl">cdsklcmdskcmkdslcmksdlckldsmcskl</div>
  13. </div>
  14. <divid="footer">footer</div>

简单总结

第一种方式,不论内容占据的空间相对浏览器视口多高,浏览器侧面的滚动条总是会出现。第二种则使用了 !importent,但是侧面的滚动条旨在需要的时候出现。两种方法的共同点是都有一个比footer高度相等或稍大的下边距。

以上就是如何使用div+CSS将页脚始终控制在页面最下方的方法。成功,是一种从一个失败走到另一个失败,却能够始终不丧失信心的能力。更多关于如何使用div+CSS将页脚始终控制在页面最下方的方法请关注haodaima.com其它相关文章!

您可能有感兴趣的文章
css让页脚保持在底部位置的四种方案

CSS如何使用Flex和Grid布局如何实现3D骰子

Flex布局史上最简单使用语法教程

新的CSS 伪类函数 :is() 和 :where()示例详解

纯CSS打字动画的如何实现示例