使用div+CSS將頁腳始終控制在頁面最下方的方法

tml和body的高度并不一定相同,在內(nèi)容少的時候,body的高度要小于html,當(dāng)然這只會出現(xiàn)在body中的內(nèi)容所占的空間高度小于瀏覽器的視口高度的時候,此時html的高度大于body的高度。網(wǎng)頁中的元素都是以body最為參考,所以有必要保持html和body的高度相同。
- html,body{height:100%;}
第一種方法:
在body中使用兩個容器,包括網(wǎng)頁的頁腳和另外一部分(container)。設(shè)置container的高度為100%;頁腳部分使用 負(fù)外邊距 保持其總是在最下方。
- html, body {
- height:100%;
- }
- .fl {
- float:left;
- display:inline;
- }
- #container {
- width:100%;
- height:300px;
- overflow:hidden;
- height:100%;
- border-bottom:70px #FFFFFF solid;
- }
- .aside {
- width:30%;
- }
- .article {
- width:70%;
- }
- #footer {
- height:50px;
- width:100%;
- clear:both;
- margin-top:-50px;
- border-bottom:1px solid #e0e0e0;
- border-top:1px solid #e0e0e0;
- }
- <div id="container">
- <div id="header">
- <div>
- <img src="" width= height= alt="" />
- <div>
- <p>fddfv</p>
- <p>容量:<span>24M</span>/<span>2G</span></p>
- </div>
- </div>
- </div>
- <div class="aside fl"> dsfcndsjkcnsd</div>
- <div class="article fl">cdsklcmdskcmkdslcmksdlckldsmcskl</div>
- </div>
- <div id="footer">footer</div>
第二種方法:使用絕對定位
這里我們使用到了position屬性,讓我們先來回顧一下position的基礎(chǔ)用法:
position有四個參數(shù):static | relative | absolute | fixed
position:static,意味元素沒有被定位,元素會出現(xiàn)在文檔本該出現(xiàn)位置,是頁面元素默認(rèn)的定位的方式,一般無需指定,除非想要覆蓋之前設(shè)置的定位。
position:relative,很明白,相對元素本該位置的偏移量
- #nav{
- position:relative;
- top:15px;
- left:20px;
- }
position:absolute,這時候元素已經(jīng)脫離了文檔,文檔中已經(jīng)沒有自己的本該的位置了,但我們可以通過left、bottom、left和right來規(guī)定其在文檔中位置。
- #nav{
- postion:absolute;
- botton:0px;
- }
我們知道萬物都是相對的,元素進行上面設(shè)置了后就保證nav元素始終保持在底部了呢?nav元素離botton為0px,是哪個為參照物呢,是父級元素還還是瀏覽器呢,其實這里分為兩種情況:
如果父級元素(父級元素的父級、父級的父級的父級......)設(shè)置postion時,則子元素此時相對的是父級的,所以當(dāng)內(nèi)容過多時,腳DIV不能被擠到底部去。
如果父級元素(父級元素的父級、父級的父級的父級......)沒有設(shè)置postion時,則子元素此時相對的是瀏覽器的,所以當(dāng)內(nèi)容過少時,腳DIV不能被擠到底部去。
好了,下面回到正題,同樣需要保持html和body的高度相同,并且body需要添加另外的一些樣式,footer需要使用絕對定位。
- body{position:relative;height:auto !important;height:100%;min-height:100%;}
- html {
- height:100%;
- }
- body {
- margin:0;
- padding:0;
- position:relative;
- height:auto !important;
- height:100%;
- min-height:100%;
- text-align:center;
- }
- .fl {
- float:left;
- display:inline;
- }
- #header {
- width:100%;
- height:80px;
- }
- #container {
- width:100%;
- height:300px;
- overflow:hidden;
- border-bottom:#FFFFFF 60px solid;
- }
- .aside {
- width:30%;
- }
- .article {
- width:70%;
- }
- #footer {
- height:50px;
- position:absolute;
- width:100%;
- clear:both;
- bottombottom:0;
- left:0;
- border-bottom:1px solid #e0e0e0;
- border-top:1px solid #e0e0e0;
- }
- <div id="header">
- <div>
- <img src="" width= height= alt="" />
- <div>
- <p>fddfv</p>
- <p>容量:<span>24M</span>/<span>2G</span></p>
- </div>
- </div>
- </div>
- <div id="container" style="border-bottom:#FFFFFF 60px solid;">
- <div class="aside fl"> dsfcndsjkcnsd</div>
- <div class="article fl">cdsklcmdskcmkdslcmksdlckldsmcskl</div>
- </div>
- <div id="footer">footer</div>
簡單總結(jié)
第一種方式,不論內(nèi)容占據(jù)的空間相對瀏覽器視口多高,瀏覽器側(cè)面的滾動條總是會出現(xiàn)。第二種則使用了 !importent,但是側(cè)面的滾動條旨在需要的時候出現(xiàn)。兩種方法的共同點是都有一個比footer高度相等或稍大的下邊距。
相關(guān)文章
- 這篇文章主要介紹了css三種實現(xiàn)div在瀏覽器水平居中的方法,感興趣的小伙伴們可以參考一下2016-04-14
- 下面小編就為大家?guī)硪黄粋€div在瀏覽器水平居中的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。2016-04-14
- 這篇文章主要介紹了div+CSS制作類似微信對話氣泡效果的實例總結(jié),文中總結(jié)出了四種編寫方式,并且對三角形的繪制有一個補充說明,需要的朋友可以參考下2016-04-01
EXCEL表格中的#DIV/0!等符號怎么全部當(dāng)計算?
EXCEL表格中的#DIV/0!等符號怎么全部當(dāng)計算呢?excel表格中出現(xiàn)了很多符號,比如顯示#DIV/0!#N/,在計算的時候會造成很多困擾,該怎么辦呢?今天我們就來將#DIV/0!等符2016-03-27- 下面小編就為大家?guī)硪黄孌IV水平垂直居中的兩種完美方法推薦。一起跟隨小編過來看看吧。希望給大家一個參考2016-03-15
學(xué)習(xí)DIV+CSS網(wǎng)頁布局之混合布局
學(xué)習(xí)DIV+CSS網(wǎng)頁布局中的混合布局,本文為大家分享的是DIV+CSS網(wǎng)頁布局教程的第四篇,感興趣的小伙伴們可以參考一下2016-03-15學(xué)習(xí)DIV+CSS網(wǎng)頁布局之三列布局
學(xué)習(xí)DIV+CSS網(wǎng)頁布局中的三列布局,本文為大家分享的是DIV+CSS網(wǎng)頁布局教程的第三篇,感興趣的小伙伴們可以參考一下2016-03-15學(xué)習(xí)DIV+CSS網(wǎng)頁布局之兩列布局
學(xué)習(xí)DIV+CSS網(wǎng)頁布局中的兩列布局,本文為大家分享的是DIV+CSS網(wǎng)頁布局教程的第二篇,感興趣的小伙伴們可以參考一下2016-03-15學(xué)習(xí)DIV+CSS網(wǎng)頁布局之一列布局
學(xué)習(xí)DIV+CSS網(wǎng)頁布局中的一列布局,本文為大家分享的是DIV+CSS網(wǎng)頁布局教程的第一篇,感興趣的小伙伴們可以參考一下2016-03-15- 這篇文章主要介紹了Div+CSS對HTML的table表格定位用法實例,文中講到了CSS的定位差異問題需要的朋友可以參考下2016-03-11