DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> CSS詳解 >> 完美的絕對底部
完美的絕對底部
編輯:CSS詳解     

CSS的簡單在於它易學,CSS的困難在於尋找更好的解決方案。在CSS的世界裡,似乎沒有完美這種說法。所以,現在介紹的CSS絕對底部,只是目前個人見過的方案中比較完美的吧。

先說我們為什麼會使用到這個CSS底部布局解決方案:

當做一個頁面時,如果頁面內容很少,不足於填充一屏的窗口區域,按普通的布局,就會出現下面圖片中的樣子(也就是底部內容並沒有位於窗口的底部,而留下了大量空白。

nonstickfooter

對於追未完美的設計師來說,這是不美觀的。網上有一些解決方案,但會出現當改變窗口高度時,底部和正文重疊的BUG。盡管沒有多少人會有事沒事兒的去改變窗口高度,但設計嘛,追求的就是盡善盡美。

overlapfooter

下面是我找到的一個比較完美的方法,來自國外的設計達人,純CSS,可以實現: 當正文內容很少時,底部位於窗口最下面。當改變窗口高度時,不會出現重疊問題。

cssstickyfooter

甚至,創造該CSS的人還專門成立一個網站介紹這個CSS底部布局方案。不知道他有沒有去申請專利:)

代碼寫法

Html代碼:

<div id="wrap">
	<div id="main" class="clearfix">
		<div id="content">
		</div>
		<div id="side">
		</div>
	</div>
</div>
<div id="footer">
</div>

說明: 使用這個布局的前提,就是footer要在總的div容器之外,footer使用一個層,其它所有內容使用一個總的層。如果確實需要到添加其它同級層,那這個同級層就必須使用position:absolute進行絕對定位。

CSS代碼:

下面是主要的CSS代碼,讓你的底部可以位於窗口的最下面:

Html, body, #wrap {height: 100%;}
body > #wrap {height: auto; min-height: 100%;}
#main {padding-bottom: 150px;}  /* 必須使用和footer相同的高度 */
#footer {position: relative;
	margin-top: -150px; /* footer高度的負值 */
	height: 150px;
	clear:both;}

說明: 需要注意的就是#main的padding值、footer的高度和負margin值,需要保持一致。

就是這麼簡單,不過還沒完。如果你的主體是使用懸浮布局,還得解決一些浏覽器的兼容問題,這裡使用的重點是為了Goolge Chrome。

對#main部份進行著名的Clearfix Hack:

.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 */

注: 該方案測試於兩欄懸浮布局,兼容各大主流浏覽器,包括Google Chrome

P.S:

  • 網絡上之前比較知名的footer布局有Ryan Faits創造的,不過它的方法在Html代碼中會有一個空的div層。嚴格來說,是不符合語義網代碼標准的。
  • 另外,還有一篇Exploring Footers article from A List Apart,但使用了一些JavaScript代碼。
  • 這樣一比較,上面看似簡單的純CSS,就顯得偉大許多了。
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved