table-layout

table-layout は CSS のプロパティで、<table> のセル、行、列のレイアウトに使用されるアルゴリズムを設定します。

試してみましょう

構文

css
/* キーワード値 */
table-layout: auto;
table-layout: fixed;

/* グローバル値 */
table-layout: inherit;
table-layout: initial;
table-layout: unset;

auto

既定値で、ほとんどのブラウザーが表の自動レイアウトアルゴリズムを使用します。表とセルの幅は中身に合うように調整されます。

fixed

表と列の幅は table 要素と col 要素の幅によって、または最初の行のセルの幅によって設定されます。後続する行のセルは列の幅に影響しません。

「固定」("fixed") レイアウト方式においては、表の 1 行目がダウンロードされ解析された時点で表全体がレンダリングできるようになります。これは「自動」レイアウト方式よりもレンダリング時間を高速にすることができますが、後続するセルのコンテンツが列の幅に合わなくなる可能性があります。各セルでは表の幅が分かっている場合、overflow プロパティを使用して、はみ出すコンテンツを切り取るかどうかを決めます。それ以外の場合、セルからはみ出すことはありません。

公式定義

初期値auto
適用対象table および inline-table 要素
継承なし
計算値指定通り
アニメーションの種類離散値

形式文法

table-layout = 
auto |
fixed

固定幅の表に text-overflow を付けた場合

この例は表の固定レイアウトを使用し、width プロパティとの組み合わせで、表の幅を制限しています。text-overflow プロパティを使用して、語が長すぎる場合は省略記号を使用するようにしています。表のレイアウトが auto である場合、表は指定された width よりも内容に合わせて広がります。

HTML

html
<table>
  <tr>
    <td>Ed</td>
    <td>Wood</td>
  </tr>
  <tr>
    <td>Albert</td>
    <td>Schweitzer</td>
  </tr>
  <tr>
    <td>Jane</td>
    <td>Fonda</td>
  </tr>
  <tr>
    <td>William</td>
    <td>Shakespeare</td>
  </tr>
</table>

CSS

css
table {
  table-layout: fixed;
  width: 120px;
  border: 1px solid red;
}

td {
  border: 1px solid blue;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

結果

仕様書

Specification
Cascading Style Sheets Level 2 Revision 2 (CSS 2.2) Specification
# width-layout

ブラウザーの互換性

BCD tables only load in the browser

関連情報