HTML表格单元格的默认宽度<td>是多少?

Mic*_*l_B 11 html css html5 w3c html-table

我无法找到这个问题的答案:规范或UA文档中的<td>哪个是定义的默认宽度?

我搜索了HTML Living Standard,HTML5 Recommendation以及其他各种来源.

我的理解(基于使用和观察)是默认情况下,表格单元格将占据其所在列的整个宽度.如果列中存在其他单元格,则单元格的宽度不能与列不同.

我正在寻找这种行为的官方确认,最好是在W3C或用户代理文档中.但任何权威参考都是可以接受的.

Bol*_*ock 8

表格单元格的物理/视觉宽度不是由HTML定义,而是由CSS定义.CSS 2.1规范有一个专门用于表格布局的整个部分,它补充了HTML对表格数据的描述.

此外,CSS本身并未完全定义如何计算单元格的宽度.它使用固定的表格布局算法:

在固定表格布局算法中,每列的宽度确定如下:

  1. "width"属性的值为"auto"的列元素设置该列的宽度.
  2. 否则,第一行中具有"width"属性的"auto"值以外的值的单元格将确定该列的宽度.如果单元格跨越多个列,则宽度将在列上分割.
  3. 任何剩余的列均等地划分剩余的水平表空间(减去边框或单元格间距).

然后,表的宽度是表元素的'width'属性的值和列宽的总和(加上单元格间距或边框)的较大值.如果表格比列宽,则应在列上分配额外空间.

但它没有提供超出自动表格布局的粗略指导方针的任何内容,用户代理可以自由地遵循或偏离(它列出了与固定表格布局不同的逐步程序,但整个列表是非-normative).通常,在 常见的情况下,您可以期望UA的行为一致- 正如您所观察到的,自动调整大小的表格单元通常会占用其内容所需的空间,而不会更多.但是深入研究边缘情况,你会发现各种各样的疯狂.