table-layout
N7.0 Win |
N6.0 Win |
e6.0 Win |
e5.5 Win |
e5.0 Win |
e5.0 Mac |
e4.5 Mac |
O7.0 Win |
O6.0 Win |
---|---|---|---|---|---|---|---|---|
○ | ○ | ○ | ○ | ○ | × | × | × | △ |
値 | auto | fixed | inherit |
---|---|
初期値 | auto |
適用 | 表要素 |
継承 | しない |
レベル | 2- |
メディア | visual |
表は一般的に、関連部分をすべて読み込んでからで無いと表示されません。
このプロパティでは、表をレイアウトするのに用いるアルゴリズムを制御出来ます。このプロパティで[fixed]という値を指定すると、固定レイアウトアルゴリズムというものに基づいて、1行目から表示されるように出来ます。
固定レイアウトアルゴリズムとは
各列の幅を決定して、1行目から表示していく方法です。列幅はボーダー、セル間距離込み
です。
列幅は、以下の手順で導き出されます。
- 'width'の値が[auto]以外の列要素は、指定された値をそのまま列幅として用います。
- 列要素の'width'の値が[auto]の場合、1行目のセル要素の'width'の値に着目し、その値が[auto]以外であれば列幅として用います。該当するセル要素が複数列に渡る場合、その値は複数列分の幅を表します。
- 以上で幅が決まらない列は、残りの水平幅を公平に等分します(ボーダーとセル間距離を考慮して計算します)。
- 表要素の'width'の値と、列幅の合計のうち、大きいほうを表の幅にします。列幅の合計より表の幅のほうが大きい場合、余った幅は各列へと適当に配分するべきとされています。
このアルゴリズムを見て大体お分かり頂けたと思いますが、きちんと幅を指定しないと、なかなかに大雑把に幅が決められてしまいます。
これで内容がセルからはみ出す場合は、はみ出した内容は'overflow'で制御出来ます。
- 問題点
-
- 列幅が狭すぎる場合は、列ごと消す事になったり、同じセルの左右のボーダーが重なったり、パディングが重なったりもするのですが、どのように処理するか書かれていません。