码迷,mamicode.com
首页 > Web开发 > 详细

网站页脚始终保持底部

时间:2016-01-23 18:20:13      阅读:274      评论:0      收藏:0      [点我收藏+]

标签:

刚写的时候有三种思路:

  1. 页脚代码直接放到最下边;但是内容少的时候页脚显示在内容的底部,而不是浏览器的底部;
  2. 相对于视窗定位;但是内容多的时候页脚一直在视窗底部,于产品需求不符;
  3. 内容区最小高度为100%,页脚代码在最底部;但是内容少的时候右侧会出现本不应该出现的滚动条,滚动高度为底部高度;

最终使用方法亮点,margin-bottom负值(如果你觉得这个提示够了,就自己开始写会更有意思)

首次构想代码:

技术分享
 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8"/>
 5     <title>测试</title>
 6     <style type="text/css">
 7     *{margin:0;padding:0;}
 8     html, body{height:100%;}
 9     #main{min-height: 100%;margin-bottom:-60px;}
10     #footer{height:60px;background: yellow;}
11     li{line-height: 100px;}
12     </style>
13 </head>
14 <body>
15 <div id="main">
16     主内容
17 </div>
18 <div id="footer">
19     这个是底部
20 </div>
21 </body>
22 </html>
View Code

乍一看似乎没有什么异常,但是我们往主内容区域放更多内容呢?

技术分享
 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8"/>
 5     <title>测试</title>
 6     <style type="text/css">
 7     *{margin:0;padding:0;}
 8     html, body{height:100%;}
 9     #main{min-height: 100%;margin-bottom:-60px;}
10     #footer{height:60px;background: yellow;}
11     li{line-height: 100px;}
12     </style>
13 </head>
14 <body>
15 <div id="main">
16     <ul>
17         <li>发送到发送到发</li>
18         <li>发送到发送到发</li>
19         <li>发送到发送到发</li>
20         <li>发送到发送到发</li>
21         <li>发送到发送到发</li>
22         <li>发送到发送到发</li>
23         <li>发送到发送到发</li>
24         <li>发送到发送到发</li>
25         <li>发送到发送到发</li>
26         <li>发送到发送到发</li>
27         <li>发送到发送到发</li>
28         <li>发送到发送到发</li>
29         <li>发送到发送到发法师打发杀到发送到发发送到发送到发</li>
30     </ul>
31 </div>
32 <div id="footer">
33     这个是底部
34 </div>
35 </body>
36 </html>
View Code

主内容区和底部重合

哦,那好办,将底部的层级弄的高一点,所以就有了如下代码:

技术分享
 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8"/>
 5     <title>测试</title>
 6     <style type="text/css">
 7     *{margin:0;padding:0;}
 8     html, body{height:100%;}
 9     #main{min-height: 100%;margin-bottom:-60px;}
10     #footer{height:60px;background: yellow;position: relative;z-index: 1;}
11     li{line-height: 100px;}
12     </style>
13 </head>
14 <body>
15 <div id="main">
16     <ul>
17         <li>发送到发送到发</li>
18         <li>发送到发送到发</li>
19         <li>发送到发送到发</li>
20         <li>发送到发送到发</li>
21         <li>发送到发送到发</li>
22         <li>发送到发送到发</li>
23         <li>发送到发送到发</li>
24         <li>发送到发送到发</li>
25         <li>发送到发送到发</li>
26         <li>发送到发送到发</li>
27         <li>发送到发送到发</li>
28         <li>发送到发送到发</li>
29         <li>发送到发送到发法师打发杀到发送到发发送到发送到发</li>
30     </ul>
31 </div>
32 <div id="footer">
33     这个是底部
34 </div>
35 </body>
36 </html>
View Code

完美了吗?

哦~~~no~~细心的人会发现,主内容区最后一个li的内容明明很长的,好像没有显示。

对了,是的,但是不是没有显示,刚刚没有给底部添加层级的时候还和底部重合了呢,只是底部层级增加以后被底部给遮盖了呢。

OK,这个时候有多重方法来解决这个问题:

  1. 在主内容区外面再套一层,添加padding-bottom / margin-bottom为页脚高
  2. 在主内容区id为main的div下边放置一个高度和页脚高度相同的空标签

以下分别是上边两条对应的代码,各有好坏,根据个人喜好采用;本人采用的是第2条,尽管会有空标签,但是主内容层级太深实在不喜欢;

技术分享
 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8"/>
 5     <title>测试</title>
 6     <style type="text/css">
 7     *{margin:0;padding:0;}
 8     html, body{height:100%;}
 9     #main{min-height: 100%;margin-bottom:-60px;}
10     #footer{height:60px;background: yellow;position: relative;z-index: 1;}
11     li{line-height: 100px;}
12     #content{padding-bottom:60px;}
13     </style>
14 </head>
15 <body>
16 <div id="main">
17     <div id="content">
18         <ul>
19             <li>发送到发送到发</li>
20             <li>发送到发送到发</li>
21             <li>发送到发送到发</li>
22             <li>发送到发送到发</li>
23             <li>发送到发送到发</li>
24             <li>发送到发送到发</li>
25             <li>发送到发送到发</li>
26             <li>发送到发送到发</li>
27             <li>发送到发送到发</li>
28             <li>发送到发送到发</li>
29             <li>发送到发送到发</li>
30             <li>发送到发送到发</li>
31             <li>发送到发送到发法师打发杀到发送到发发送到发送到发</li>
32         </ul>
33     </div>
34 </div>
35 <div id="footer">
36     这个是底部
37 </div>
38 </body>
39 </html>
View Code
技术分享
 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8"/>
 5     <title>测试</title>
 6     <style type="text/css">
 7     *{margin:0;padding:0;}
 8     html, body{height:100%;}
 9     #main{min-height: 100%;margin-bottom:-60px;}
10     #footer{height:60px;background: yellow;position: relative;z-index: 1;}
11     li{line-height: 100px;}
12     .false-footer{height:60px;}
13     </style>
14 </head>
15 <body>
16 <div id="main">
17     <ul>
18         <li>发送到发送到发</li>
19         <li>发送到发送到发</li>
20         <li>发送到发送到发</li>
21         <li>发送到发送到发</li>
22         <li>发送到发送到发</li>
23         <li>发送到发送到发</li>
24         <li>发送到发送到发</li>
25         <li>发送到发送到发</li>
26         <li>发送到发送到发</li>
27         <li>发送到发送到发</li>
28         <li>发送到发送到发</li>
29         <li>发送到发送到发</li>
30         <li>发送到发送到发法师打发杀到发送到发发送到发送到发</li>
31     </ul>
32     <div class="false-footer"></div>
33 </div>
34 <div id="footer">
35     这个是底部
36 </div>
37 </body>
38 </html>
View Code

 

网站页脚始终保持底部

标签:

原文地址:http://www.cnblogs.com/bjchenxn/p/5153622.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!