1. 程式人生 > >兩種方式實現footer固定在頁面最下方佈局

兩種方式實現footer固定在頁面最下方佈局

第一種方式設定html、body高度100%,footer相對body定位:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        html {
            height: 100%;
        }
        body {
            margin: 0;
            padding: 0;
            min-height: 100%;
            position: relative;
            background-color: #ccc;
        }
        .content {
            height: 200px;
            /*height: 2000px;*/
        }
        .footer {
            position: absolute;
            left: 0;
            right: 0;
            bottom: 0;
            background-color: orange;
            height: 50px;
            line-height: 50px;
        }
    </style>
</head>
<body>
    <div class="content">
    </div>
    <div class="footer">
        footer
    </div>
</body>
</html>

第二種方式用flex佈局:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        *{
            padding: 0;margin: 0;
        }
        html{
            height: 100%;
        }
        body{
            display: flex;
            flex-direction: column;
            height: 100%;  
        }
        .content{
            flex: 1;
        }
        header{
            height: 50px;
            background-color: green;
        }
        footer{
            height: 50px;
            background-color: yellow;
        }
        .content{
            overflow: auto;
        }
    </style>
</head>
<body>
    <header></header>
    <main class="content">
 content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>content<br>
    content</main>
    <footer></footer> 
</body>
</html>

   完整相容性:ios 4+、android 2.3+、winphone8+:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>flex上下固定中間滾動佈局</title>
    <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
<style type="text/css">


*{padding: 0;margin: 0;}
html,body{height: 100%}
.wrap{width: 100%;height: 100%;}
.header,.footer{height:40px;line-height:40px;background-color:#D8D8D8;}
.main{overflow:auto;-webkit-overflow-scrolling: touch;}
/* ============================================================
   flex:定義佈局為盒模型
   flex-v:盒模型垂直佈局
   flex-1:子元素佔據剩餘的空間
   flex-align-center:子元素垂直居中
   flex-pack-center:子元素水平居中
   flex-pack-justify:子元素兩端對齊
   ============================================================ */
.flex{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}
.flex-v{-webkit-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}
.flex-1{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;}
.flex-align-center{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;}
.flex-pack-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;}
.flex-pack-justify{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;}
 p{
    background-color:yellow;
</style>
</head>
<body>
<div class="wrap flex flex-v">
<div class="header">我想要它固定頂部</div>
    <div class="main flex-1">
      <p>高度自動適應</p>
      <p>高度自動適應</p>
      <p>高度自動適應</p>
      <p>高度自動適應</p>
      <p>高度自動適應</p>
      <p>高度自動適應</p>
      <p>高度自動適應</p>
      <p>高度自動適應</p>
      <p>高度自動適應</p>
      <p>高度自動適應</p>
      <p>高度自動適應</p>
      <p>高度自動適應</p>
      <p>高度自動適應</p>
      <p>高度自動適應</p>
      <p>高度自動適應</p>
      <p>高度自動適應</p>
      <p>高度自動適應</p>
      <p>高度自動適應</p>
      <p>高度自動適應</p>
      <p>高度自動適應</p>
      <p>高度自動適應</p>
      <p>高度自動適應</p>
      <p>高度自動適應</p>
      <p>高度自動適應</p>
      <p>高度自動適應</p>
      <p>高度自動適應</p>
      <p>高度自動適應</p>
      <p>高度自動適應</p>
      <p>高度自動適應</p>
    </div>
    <div class="footer">我想要它固定底部</div>
</div>
</body>
</html>