table-layout

table-layout CSS 属性设置用于布局 <table> 单元格、行和列的算法。

试试

语法

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 修订版 2 (CSS 2.2) 规范
# width-layout

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅