網頁製作教程:用CSS實現網頁布局

來源:互聯網
上載者:User
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不會。

  用絕對位置布局

<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>

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

  並且應用如下的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實際上顯示其先進的地方──在檔案大小上,高易用性的頁面只相當基於表格的頁面的一小部分。



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.