将footer固定在页面底部的实现方法

方法一:footer高度固定+绝对定位

HTML结构+初始化CSS样式:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>测试将footer固定在页面底部的实现方法</title>
 6     <style type="text/css">
 7         html, body {
 8             margin: 0;
 9             padding: 0;
10         }
11         .head {
12             width: 100%;
13             height: 100px;
14             background: teal;
15             text-align: center;
16             line-height: 300px;
17         }
18         .main {
19             width: 100%;
20             height: 200px;
21             background: orange;
22             text-align: center;
23             line-height: 300px;
24         }
25         .footer {
26             width: 100%;
27             height: 300px;
28             background: red;
29             text-align: center;
30             line-height: 300px;
31         }
32     </style>
33 </head>
34 <body>
35     <div class="head">我是头部</div>
36     <div class="main">我是主体内容</div>
37     <div class="footer">我是底部</div>
38 </body>
39 </html>

加上之前的效果

将footer固定在页面底部的实现方法

CSS设置:

 1 .footer {
 2     width: 100%;
 3     height: 300px;
 4         background: red;
 5     text-align: center;
 6     line-height: 300px;
 7     /* footer高度固定+绝对定位(子绝父相),如果不行就加个!important,调高优先级 */
 8     position: absolute;
 9     bottom: 0;
10 }    

首先,设置body的高度至少充满整个屏幕,并且body作为footer绝对定位的参考节点;
其次,设置main(footer前一个兄弟元素)的padding-bottom值大于等于footer的height值,以保证main的内容能够全部显示出来而不被footer遮盖;(可选
最后,设置footer绝对定位,并设置height为固定高度值

 

加上之后的效果

将footer固定在页面底部的实现方法

 

方法二:footer高度固定+margin负值

HTML结构:

1 <body>
2     <div class="container">
3         <header>header</header>
4         <main>main content</main>
5     </div>
6     <footer>footer</footer>
7 </body>

CSS设置:

1 html,body{height:100%;margin:0;padding:0;}
2 
3 .container{min-height:100%;}
4 header{background-color: #ffe4c4;}
5 main{padding-bottom:100px;background-color: #bdb76b;}/* main的padding-bottom值要等于或大于footer的height值 */
6 footer{height:100px;margin-top:-100px;background-color: #ffc0cb;}/* margin-top(负值的)高度等于footer的height值 */

此方法把footer之前的元素放在一个容器里面,形成了container和footer并列的结构:
首先,设置.container的高度至少充满整个屏幕;
其次,设置main(.container最后一个子元素)的padding-bottom值大于等于footer的height值;
最后,设置footer的height值和margin-top负值

这种方法没有使用绝对定位,但html结构的语义化不如方法一中的结构清晰。

效果如下

将footer固定在页面底部的实现方法

 

上一篇:元素显示模式


下一篇:CSS子元素在父元素中水平垂直居中的几种方法