HTML頁面自適應寬度的table(表格)
阿新 • • 發佈:2019-02-06
WEB應用的頁面,表格的表現形式是常常遇到的,在列數有限的前提下,如何將各列中的內容自適應到不同解析度的螢幕,這應該是一個比較容易遇到的問題,下面就來談一談我對這類問題的解決與看法。
將所有列設定為固定寬度,顯然是不能滿足此類要求的,但是若把全部的列都設定為百分比,恐怕在某些尺寸,或解析度下,會變得很難看。比較習慣於用如下的方式來處理——在表格列數不是很多的前提下——將大部分列寬用固定值設定死,留下一列不設定寬度,將table的寬度設定為螢幕的百分比(譬如95%、98%等)。
例:
<table width="95%" border="1" cellpadding="2" cellspacing ="1">
<tr>
<td width="50px" nowrap>序號</td>
<td width="150px" nowrap>分類A</td>
<td width="150px" nowrap>分類B</td>
<td width="200px" nowrap>名稱</td>
<td nowrap>說明</td>
<td width="100px" nowrap>操作</td>
</tr>
……
</table>
在本例中,名為“說明”的列,內容比較長,個人認為可以將此列設定為浮動寬度列,用以自適應頁面的寬度。
但是當該表格中出現長度比列幅寬的半形字元時,td的寬度會被內容撐破,應該如何解決呢?
解決此問題的方法是:在明細行的td中,追加style="word-wrap:break-word;"
,這樣做可以使半形連續字元強制換行,不至於撐破列寬。
例:
<td align="left" width="150px" style="word-wrap:break-word;">
……
</td>
應用此方法,針對設定了width寬度的td列可以解決,但是如果沒有設定寬度的td列,是無法生效還是會被撐破td的,應該如何解決呢?
解決此問題的方法是:在定義表格時,追加style="table-layout:fixed;"
,這樣做可以使半形連續字元強制換行,不至於撐破列寬。需要注意的是,使用此引數後,不要輕易在tr(行)或td(列)中加入height屬性,會使table不再被內容撐出適合的高度。
例:
<table width="95%" border="1" cellpadding="2" cellspacing="1" style="table-layout:fixed;">
……
</table>
此方法適用於IE與FireFox瀏覽器。