将文本添加到空表格单元格会更改其宽度

J-b*_*bob 5 html html-table

有人能解释一下这里发生了什么吗?http://jsfiddle.net/BeQmw/2

我有两个表,每个表有两行和两个单元格.每个单元格都有不同的背景颜色,因此您可以看到它们的宽度.两个表之间的唯一区别是第二个表+在第二行的第一个单元格中有一个字符.但是当发生这种情况时,包含该列的细胞+变得更宽.

为什么HTML会这样做有充分的理由吗?有没有办法指定所有单元格的宽度相同?

Exp*_*lls 3

默认情况下,<table>table-layout设置为auto。此设置使浏览器根据单元格的内容计算表格单元格的布局(即,有内容的单元格受到的影响与没有内容的单元格不同)。我不确定该算法到底是什么,但如果您没有在元素width=100%上指定<table>,则空表格单元格的宽度似乎为 1 或 2 像素宽度,该宽度显然会乘以表格的整个宽度。当您将内容添加到第一个表格单元格时,该值会继续减少,但会随着第二个表格单元格中的内容而增加。

我直接说这不依赖于单元格内容,而是根据指定的宽度、边框和单元格间距table-layout: fixed计算表格单元格的宽度。<col>规范)您可以看到它的实际效果:http://jsfiddle.net/ExplosionPIlls/BeQmw/3/

该规范继续讨论table-layout: auto并实际上说:

UA 不需要实现该算法...

因此不保证表格单元格的特定宽度。