固定レイアウト表で%値指定の列幅が100%を超えられない

症状

固定レイアウト表(table-layout:fixed;)で列の幅を%単位の値で指定する場合、指定値の合計が100%を超える場合でも、表全体の幅は表要素のwidthプロパティの値が適用されてしまう。

例示

<table border="2" style="table-layout:fixed; width:200px;">
<tr>
<td style="width:200px;">200px</td>
<td style="width:100px;">100px</td>
</tr>
</table>
<table border="2" style="table-layout:fixed; width:200px;">
<tr>
<td style="width:100%;">100%</td>
<td style="width:50%;">50%</td>
</tr>
</table>
200px 100px
100% 50%

どちらの表も1列目の幅が200px、2列目の幅が100pxになるはずです。

スクリーンショット

Ns7.1Netscape7.1標準モード

補足

%単位の値で指定した列幅の合計値が100%を超える場合、表全体の幅はtable要素のwidthプロパティの値を用い、各列の幅は各々の指定値に比例するように分配されます。上記の例では1列目の幅が100(%)、2列目の幅が50(%)なので 100:50 → 2:1 となり、1列目は約133px、2列目は約67pxが最終的な幅になります。

※本来は、枠線の幅やセルとセルの間の距離も計算しなければなりません。

修正状況

  • Netscape7.1の標準モードと互換モードで不具合の発生を確認しました。

関連記事

スポンサーリンク

iアプリを作るための開発環境設定

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る