DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> CSS詳解 >> 網頁布局
網頁布局
編輯:CSS詳解     

用CSS 來布局很容易。如果你已經習慣用表格布局的話,起先會感覺比較困難。其實不難,只不過動機不同,並且在實踐中更有意義。

你可以把這一頁面的各個部分當作獨立的版塊來看待,無論你選擇哪一塊。你可以絕對或相對地用彼塊取代此塊。

定位

定位屬性position用於定義一個元素是否absolute(絕對),relative(相對),static(靜態),或者fixed(固定)。

static值是元素的默認值,它會按照普通順序生成,就如它們在Html的出現一般。

relative很像static,但可用top、right、bottom和left屬性來偏移原始位置。

absolute使元素從Html普通流中分離出來,並把它送到一個完全屬於自己的定位世界。在這個稍微瘋狂的世界,這個絕對的元素可以放置到任何地方,只要設置了top、right、bottom和left的值。

fixed的行為也很像absolute,但參考於浏覽器窗口相對於頁面而放置絕對的元素,所以,理論上,當頁面滾動的時候,固定元素完全保持在浏覽器視區中。為什麼說理論上的?不為別的,在Mozilla和Opera中工作得很好,但IE不會。

用絕對定位布局

你可以用絕對定位來創建一個傳統兩列布局,只要在Html中使用如下面的類似規則:

<div id="navigation">
 <ul>
 <li><a href="this.Html">This</a></li>
 <li><a href="that.Html">That</a></li>
 <li><a href="theOther.Html">The Other</a></li>
 </ul>
 </div>
 <div id="content">
 <h1>Ra ra banjo banjo</h1>
 <p>Welcome to the Ra ra banjo banjo page. Ra ra banjo banjo. Ra ra banjo banjo. Ra ra banjo banjo. Ra ra banjo banjo.</p>
 <p>(Ra ra banjo banjo)</p>
 </div>

並且應用如下的CSS:

#navigation { position: absolute; top: 0; left: 0; width: 10em; } 
#content { margin-left: 10em; }

你將看到,長度為10em的導航條被設置在左邊。因為導航是絕對定位的,對頁面的其他部分的流動不會有任何影響,所以所需要做的只是把內容區域的左邊界寬度設置為與導航條寬度一樣就可以了。

實在是太容易了!然而你並不受這個兩列方法的限制。用精明的定位,你可以布置你所如你所需的更多的塊。比如,你需要增加第三列,你可以為Html增加“navigation2”塊並且應用如下CSS:

#navigation { position: absolute; top: 0; left: 0; width: 10em; } 
#navigation2 { position: absolute; top: 0; right: 0; width: 10em; } 
#content { margin: 0 10em;
 /* setting top and bottom margin to 0 and right and left margin to 10em */ }

絕對定位元素的唯一副作用是,因為它們生活自己的世界裡,沒有辦法精確決定它們在哪兒結束。如果你使用上面的例子在一個少導航和多內容區域,沒有什麼問題,但是,特別是使用長度和寬度的相對值時,你經常得放棄在下面放置任何事物如腳注的希望。如果你真的要做,與其絕對定位它們,不如浮動它們。

浮動

浮動將移動一個元素到同一線上的左邊或者右邊,而周圍也會有內容浮動。

浮動經常用在定位一個頁面內的小型的元素(在本站的原始默認CSS中Html初級指南和CSS初級指南的“下一頁”連接就是浮動到右邊的。同樣參閱偽元素中的:first-letter例子),但同樣可以用在更大的塊中,比如導航列。

拿下面的Html例子,你可以應用隨後的CSS:

#navigation { float: left; width: 10em; } 
#navigation2 { float: right; width: 10em; } 
#content { margin: 0 10em; }
 
如果你不希望下一個元素環繞浮動對象,你可以使用clear(清除)屬性。clear: left將清除左邊元素,clear: right將清除右邊元素,而clear: both會清除左邊和右邊。所以,舉個例子,你需要一個頁面腳注,你可以用id“footer”為Html增加一個塊,然後使用如下的CSS:

#footer { clear: both; }

嗯,你已經搞定了。一個腳注會出現在所有列的下邊,不管任何一個列有多長。

注意

我們已經大體上介紹了地位和浮動,著重強調了頁面的“大”塊,但請記住,這些方法也可以用在這些塊內的任何元素。綜合定位、浮動、邊界、補白和邊框,你可以再現任何的版式設計,在布局方面,沒有CSS完成不了表格所能完成的的事情。

使用表格布局的唯一理由是你試圖適應古老的浏覽器。這也是CSS實際上顯示其先進的地方──在文件大小上,高易用性的頁面只相當基於表格的頁面的一小部分。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved