1. 程式人生 > >css Sticky footer的實現

css Sticky footer的實現

有時候製作網頁的時候當內容太少的時候,不足於填充一屏的視窗區域,按普通的佈局,就會出現下面圖片中的樣子(也就是底部內容並沒有位於視窗的底部,而留下了大量空白)。

一:第一種方法:國外大神提供

<!DOCTYPE html>
<html>
 
    <head>
        <meta charset="UTF-8">
        <title></title>
        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
        <style type="text/css">
            * {
                padding: 0px;
                margin: 0px;
            }
             
            html,
            body,
            #wrap {
                box-sizing: border-box;
                height: 100%;
                border: 4px solid green;
            }
             
            body> #wrap {
                height: auto;
                min-height: 100%;
            }
             
            #main {
                padding-bottom: 150px;
            }
            /* 必須使用和footer相同的高度 */
             
            #footer {
                position: relative;
                margin-top: -150px;
                /* footer高度的負值 */
                height: 150px;
                clear: both;
                background: red;
            }
             
            .clearfix:after {
                content: ".";
                display: block;
                height: 0;
                clear: both;
                visibility: hidden;
            }
             
            .clearfix {
                display: inline-block;
            }
            /* Hides from IE-mac \*/
             
            * html .clearfix {
                height: 1%;
            }
             
            .clearfix {
                display: block;
            }
            /* End hide from IE-mac */
        </style>
    </head>
 
    <body>
        <div id="wrap">
            <div id="main" class="clearfix">
                <div id="content">
                    CSS的簡單在於它易學,CSS的困難在於尋找更好的解決方案。在CSS的世界裡,似乎沒有完美這種說法。所以,現在介紹的CSS絕對底部,只是目前個人見過的方案中比較完美的吧。 先說我們為什麼會使用到這個CSS底部佈局解決方案: 當做一個頁面時,如果頁面內容很少,不足於填充一屏的視窗區域,按普通的佈局,就會出現下面圖片中的樣子(也就是底部內容並沒有位於視窗的底部,而留下了大量空白。
                </div>
                <div id="side">
                    對於追未完美的設計師來說,這是不美觀的。網上有一些解決方案,但會出現當改變視窗高度時,底部和正文重疊的BUG。儘管沒有多少人會有事沒事兒的去改變視窗高度,但設計嘛,追求的就是盡善盡美。下面是我找到的一個比較完美的方法,來自國外的設計達人,純CSS,可以實現: 當正文內容很少時,底部位於視窗最下面。當改變視窗高度時,不會出現重疊問題。甚至,創造該CSS的人還專門成立一個網站介紹這個CSS底部佈局方案。不知道他有沒有去申請專利:)
                </div>
            </div>
        </div>
        <div id="footer">
            臥槽
        </div>
    </body>
 
</html>

html,body,#wrap設定height : 100%的目的是讓這些很少的內容撐滿整個螢幕,這樣才能將footer置於底部,footer的margin-top:-64px的原因就是將footer往上頂就顯示出來了,如果沒有margin-top那麼footer被頂到頁面之下了(前提是wrap被設定成高度為100%)