table-layout: auto
每一个td会按照内容撑开宽度,如果有多余的宽度,按照下面规则分配
具体规则
-
满足所有列的最小宽度需求
-
如果还有剩余空间,按比例分配给各列
-
优先分配给内容较多的列 (会给内容长的列分配更多的剩余空间)
支持min-width 要设置在colgroup里设置
支持max-width, 但是要设置在td的子元素里
//min-width 支持
<table style="table-layout: auto;">
<colgroup>
<col style="width: 80px;">
<!-- 固定宽度 -->
<col style="min-width: 150px;">
<!-- 最小宽度 -->
<col>
<!-- 自动宽度 -->
</colgroup>
...
</table>
//max-width 支持
<table style="table-layout: auto;">
<tbody>
<tr>
<td><div style="max-width: 200px;">2132132133213</div></td>
<td></td>
<td></td>
</tr>
</tbody>
...
</table>
table-layout: fixed,
默认会平均分配空间
不支持 minWidth和maxWidth, 支持width
with的分配规则:
- 百分比: 百分比基准(100%) = 表格总宽度, 30% 就是表格总宽度的 30%
- 固定宽度: 那就是固定宽度
- 剩余空间 = 表格宽度 - Σ(固定宽度) - Σ(百分比宽度)
- 没有设置宽度的列 = 剩余空间 ÷ 自动列数量