1. 程式人生 > >XHTML學習筆記(3)之自適應高度

XHTML學習筆記(3)之自適應高度

#header{
MARGIN: 0px;
BORDER: 0px;
BACKGROUND:
#ccd2de;
WIDTH: 580px;
HEIGHT: 60px;}

#mainbox {
MARGIN: 0px;
WIDTH: 580px;
BACKGROUND: #FFF; }

#sidebar{
FLOAT: left;
MARGIN: 2px 2px 0px 0px;
PADDING: 0px;
BACKGROUND: #F2F3F7;
WIDTH: 170px; }

#menu{
FLOAT: right;
MARGIN: 2px 0px 2px 0px;
PADDING:0px 0px 0px 0px;
WIDTH: 400px;
BACKGROUND: #ccd2de; }

#content{
FLOAT: right;
MARGIN: 1px 0px 2px 0px;
PADDING:0px;
WIDTH: 400px;
BACKGROUND: #E0EFDE;}

#footer{
CLEAR: both;
MARGIN: 0px 0px 0px 0px;
PADDING: 5px 0px 5px 0px;
BACKGROUND: #ccd2de;
HEIGHT: 40px;
WIDTH: 580px; }

這個例子的頁面主要程式碼如下:

<div id="header"></div>
<div id="mainbox">
  <div id="menu"></div>
  <div id="sidebar"></div>
  <div id="content"></div>
</div>
<div id="footer"></div>

  重點在於#mainbox層嵌套了#menu,#sidebar和#content三個層。當#content的內容增加,#content的高度就會增高,同時#mainbox的高度也會撐開,#footer層就自動下移。這樣就實現了高度的自適應。

  另外值得注意的是:#menu和#content都是浮動在頁面右面"FLOAT: right;",#sidebar是浮動在#menu層的左面"FLOAT: left;",這是浮動法定位,還可以採用絕對定位來實現這樣的效果。

  這個方法存在另一個問題,就是側列#sidebar的背景無法百分之百。一般的解決辦法就是用body的背景色來填充滿。(不能使用#mainbox的背景色,因為在Mozilla等瀏覽器中#mainbox的背景色失效。)