典型的三行二列居中高度自適應佈局

           先給出代碼,之後再詳細講解吧。

           用notepad編寫如下的代碼:

 <html>
<head>
<style type="text/css">
body
{ background:#999; text-align:center; color:#333; font-family:arial,verdana,sans-serif; }

#header
{ width:776px; margin-right:auto; margin-left:auto; padding:0px; background:#EEff00; height:60px; text-align:left;}

#contain
{ margin-right:auto; margin-left:auto; width:776px; }

#mainbg
{ width:776px; padding:0px; background:#60A179; float:left; }

#right
{ float:right; margin:2px 0px 2px 0px; padding:0px; width:574px; height:500px; background:#ccd2de; text-align:left;}

#left
{ float:left; margin:2px 2px 0px 0px; padding:0px; background:#F2F3F7; width:200px; height:500px; text-align:left;}

#footer
{ clear:both; width:776px; margin-left:auto; margin-right:auto; padding:0px; background:#EEff00; height:60px;}
</style>

</head>

<body>
<div id="header">header</div>

<div id="contain">
<div id="mainbg">
<div id="right"></div>
<div id="left"></div>
</div>
</div>

<div id="footer">footer</div>


</body>

</html>

            首先我們定義body和頂部第一行#header,這裏面的關鍵是body中的text-align:center;和header中的margin-right: auto;margin-left: auto;,通過這兩句使得header居中。注:其實定義text-align:center;就已經在IE中實現居中,但在mozilla中無效,需要設置margin:auto;纔可以實現mozilla中的居中。          

            接下來定義中間的兩列#right和#left。爲了使中間兩列也居中,我們在它們外面嵌套一個層#contain,並對contain設置margin:auto;,這樣#right和#left就自然居中了。

            注意中間兩列定義的順序,我們首先定義#right,通過float: right;讓它浮在#contain層的最右邊。然後再定義#left,通過float: left;讓它浮動在#right層的左面。這和我們以前表格從左到右定義的順序正好相反(更正:先左後右、還是先右後左都可以實現,根據自己需要設計)。

            我們看到代碼中在#contain和兩列之間還嵌套了一個層#mainbg,這個層是做什麼用的呢?這個層就是用來定義#contain的背景的。你肯定會問,爲什麼不直接在#contain中定義背景,而要多套一層呢?那是因爲在#contain中直接定義的背景,在mozilla中將顯示不出來,必須定義高度值纔可以。如果定義了高度值,#right層就無法實現根據內容的自動伸縮。爲了解決背景和高度問題,就必須增加這麼一個#mainbg層。竅門在於#mainbg這個層定義float: left;,因爲float使層自動有寬和高的屬性。(暫且這麼理解:)         

          最後是定義底部的#footer層。這個定義的關鍵是:clear:both;,這一句話的作用是取消#footer層的浮動繼承。否則的話,你會看到#footer緊貼着#header顯示,而不是在#right的下面。

         奇怪,圖片上傳不上來,         

         原貼:http://www.w3cn.org/article/layout/2004/88.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章