table-layout

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

table-layout CSS 屬性設定用於佈局 <table> 單元格、行和列的演算法。

試一試

table-layout: auto;
width: 150px;
table-layout: fixed;
width: 150px;
table-layout: auto;
width: 100%;
table-layout: fixed;
width: 100%;
<section class="default-example" id="default-example">
  <table class="transition-all" id="example-element">
    <tr>
      <th>Name</th>
      <th>Location</th>
    </tr>
    <tr>
      <td>Lion</td>
      <td>Africa</td>
    </tr>
    <tr>
      <td>Norwegian Lemming</td>
      <td>Europe</td>
    </tr>
    <tr>
      <td>Seal</td>
      <td>Antarctica</td>
    </tr>
    <tr>
      <td>Tiger</td>
      <td>Asia</td>
    </tr>
  </table>
</section>
table {
  border: 1px solid #113399;
}

th,
td {
  border: 2px solid #aa1199;
  padding: 0.25rem 0.5rem;
}

語法

css
/* Keyword values */
table-layout: auto;
table-layout: fixed;

/* Global values */
table-layout: inherit;
table-layout: initial;
table-layout: revert;
table-layout: revert-layer;
table-layout: unset;

auto

使用自動錶格佈局演算法。表格及其單元格的寬度會根據內容進行調整。大多數瀏覽器預設使用此演算法。

fixed

使用固定表格佈局演算法。使用此關鍵字時,表格的寬度需要使用 width 屬性顯式指定。如果 width 屬性的值設定為 auto 或未指定,瀏覽器將使用自動錶格佈局演算法,在這種情況下,fixed 值無效。
固定表格佈局演算法比自動佈局演算法更快,因為表格的水平佈局僅取決於表格的寬度、列的寬度以及邊框或單元格間距。水平佈局不取決於單元格的內容,因為它僅取決於顯式設定的寬度。

在固定表格佈局演算法中,每列的寬度確定如下:

  • 具有顯式寬度的列元素設定該列的寬度。
  • 否則,第一行中具有顯式寬度的單元格確定該列的寬度。
  • 否則,該列從共享的剩餘水平空間獲取寬度。

使用此演算法,一旦第一行表格資料被下載和分析,整個表格就可以被渲染。這可以比“自動”佈局方法加快渲染時間,但後續單元格內容可能無法適應提供的列寬。單元格使用 overflow 屬性來確定是否裁剪任何溢位內容,但僅當表格具有已知寬度時;否則,它們不會溢位單元格。

正式定義

初始值auto
應用於tableinline-table 元素
繼承性
計算值同指定值
動畫型別離散

正式語法

table-layout = 
auto |
fixed

示例

帶文字溢位的固定寬度表格

此示例使用固定表格佈局,結合 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;
}

結果

規範

規範
層疊樣式表級別 2
# 寬度佈局

瀏覽器相容性

另見