在網(wǎng)頁設(shè)計中,固定布局模型的速度之所以快,主要原因是布局不依賴于表單元格的內(nèi)容。其布局是根據(jù)該表以及表中列和單元格的width值決定的。
在網(wǎng)頁設(shè)計時固定布局模型的工作包括以下簡單步驟:
1、width屬性值不是auto的所有列元素會根據(jù)width值設(shè)置該列的寬度。
2、如果一個列的寬度為auto——不過,表首行中位于該列的單元格width不是auto——則根據(jù)該單元格寬度設(shè)置此列的寬度。如果這個單元格跨多列,則寬度在這些列上平均分配。
3、在以上兩步之后,如果列的寬度仍為auto,會自動確定其大小,使其寬度盡可能相等。
此時,表的寬度設(shè)置為表的width值或列寬度之和(取其中較大者)。如果表寬度大于其列寬總和,將二者之差除以列數(shù),再把得到的這個寬度增加到每一列上。
在網(wǎng)頁設(shè)計時,這種方法的速度很快,因為所有列寬度都由表的第一行定義。首行后所有行中的單元格都根據(jù)首行所定義的列寬確定大小。后面這些行中的單元格不會改變列寬,這意味著為這些單元格指定的width值都會被忽略。如果一個單元格的內(nèi)容無法放下,該單元格的overflow值將決定單元格內(nèi)容是剪裁。可見還是生成一個滾動條。
考慮以下樣式和標記:
table{table-layout: fixed; width: 400px;
border-collapse: collapse;}
td {border: 1px solid;}
Col#c1 {width: 200px;}
#r1c2 {width: 75px;}
#r2c3 {width: 500px;}
<table>
<colgroup>
<col id="cl"><col id="c2"><col id="c3"><col id="c4">
</colgroup>
<tr>
<td id="rlcl">l-l</td><td id="r1c2">l-2</td>
<td id="rlc3">l-3</td><td id="rlc4">1-4</td>
</tr>
<tr>
<td id="r2cl">2-l</td><td id="r2c2">2-2</td>
<td id="r2c3">2-3</td><cd id="r2c4">2-4</td>
</tr>
<tr>
<td id=" r3c1">3-1</td><td id=" r3 e2">3-2</td>
<Cd id="r3c3">3-3</td><td id="r3c4">3-4</td>
</tr>
<tr>
<td id="r4cl">4-l</tdxtd id="r4c2">4-2</td>
<td id="r4c3">4-3</tdxtd id="r4c4">4-4</td>
</tr>
</table>
注意,在網(wǎng)頁設(shè)計時,使用固定寬度布局模型時,沒有必要非得為表指定一個顯式寬度,不過如果指定一個寬度確實有所幫助。例如,給定以下樣式,用戶代理可能計算出表的寬度比父元素的width窄50像素。它就會在固定布局算法中使用計算得到的這個寬度:
table{table-layput: fixed; margin: 0 25px;width: auto;}