從二列固定寬度入手,開始嘗試二列布局的情況下,左右欄寬度能夠做到自適應,從一列自適應布局中我們知道,設定自適應主要通過寬度的百分比值設置,因此在二列寬度自適應的布局中也同樣是對百分比寬度值的設計,繼續上面的CSS代碼,我們得新定義二列的寬度值:
#left {
background-color: #E8F5FE;
border: 1px solid #A9C9E2;
float: left;
height: 300px;
width: 20%;
}
#right {
background-color: #F2FDDB;
border: 1px solid #A5CF3D;
float: left;
height: 300px;
width: 70%;
}
左欄寬度設置為寬度20%,右欄寬度設置為寬度的70%,看上去像一個左側為導航,右側為內容的常見網頁形式。
為什麼沒有將右欄設置為80%,從而實現整體100%的效果?
這個問題的原因還得從對象的其它屬性說起,大家應該還記得,為了使布局在預覽中更清楚,我們使用了border屬性,使得兩個對象都具有1px的邊框,而在CSS布局中,一個對象的寬度,不僅僅由width值來決定,一個對象的真實寬度是由對象本身的寬、對象的左右邊距,以及左右邊框,還有內邊距這些屬性相加而成,因此左面的對象不僅僅是浏覽器窗口的20%的寬度,還應該加上左邊的邊框的寬度。這樣算下來左右欄都超出了自身的百分比寬度,最終的寬度也超過了浏覽器窗口的寬度,因此右欄將被擠掉第二行顯示,從而失去了左右分欄的效果,因此這裡使用了並非100%的寬度之和,而在實際應用之中,可以通過避免邊框及邊距的使用,而達到左右與浏覽器填滿的效果。這樣一個有關寬度計算的問題,是CSS布局中相當重要的被稱為為盒模型的問題,在以後的教程中會詳細講解,請繼續關注本站的教程。
本例的制作過程和CSS網頁布局入門教程4:二列固定寬度一樣,只不過在設置寬度時把固定的固定的200px寬度分別換成20%和70%,在此不再贅述。