在網(wǎng)頁(yè)設(shè)計(jì)中,固定布局模型的速度之所以快,主要原因是布局不依賴于表單元格的內(nèi)容。其布局是根據(jù)該表以及表中列和單元格的width值決定的。
在網(wǎng)頁(yè)設(shè)計(jì)時(shí)固定布局模型的工作包括以下簡(jiǎn)單步驟:
1、width屬性值不是auto的所有列元素會(huì)根據(jù)width值設(shè)置該列的寬度。
2、如果一個(gè)列的寬度為auto——不過,表首行中位于該列的單元格width不是auto——?jiǎng)t根據(jù)該單元格寬度設(shè)置此列的寬度。如果這個(gè)單元格跨多列,則寬度在這些列上平均分配。
3、在以上兩步之后,如果列的寬度仍為auto,會(huì)自動(dòng)確定其大小,使其寬度盡可能相等。
此時(shí),表的寬度設(shè)置為表的width值或列寬度之和(取其中較大者)。如果表寬度大于其列寬總和,將二者之差除以列數(shù),再把得到的這個(gè)寬度增加到每一列上。
在網(wǎng)頁(yè)設(shè)計(jì)時(shí),這種方法的速度很快,因?yàn)樗辛袑挾榷加杀淼牡谝恍卸x。首行后所有行中的單元格都根據(jù)首行所定義的列寬確定大小。后面這些行中的單元格不會(huì)改變列寬,這意味著為這些單元格指定的width值都會(huì)被忽略。如果一個(gè)單元格的內(nèi)容無法放下,該單元格的overflow值將決定單元格內(nèi)容是剪裁??梢娺€是生成一個(gè)滾動(dòng)條。
考慮以下樣式和標(biāo)記:
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)頁(yè)設(shè)計(jì)時(shí),使用固定寬度布局模型時(shí),沒有必要非得為表指定一個(gè)顯式寬度,不過如果指定一個(gè)寬度確實(shí)有所幫助。例如,給定以下樣式,用戶代理可能計(jì)算出表的寬度比父元素的width窄50像素。它就會(huì)在固定布局算法中使用計(jì)算得到的這個(gè)寬度:
table{table-layput: fixed; margin: 0 25px;width: auto;}
當(dāng)前文章標(biāo)題:網(wǎng)頁(yè)設(shè)計(jì)中的固定布局
當(dāng)前URL:http://51zuanshi.com.cn/news/wzzz/3027.html