Skip to content

精确控制表格列宽

困难产生原因

表格元素的宽高很难预测,就算给其设置了宽高,也只是起到了一些作用,最终效果还是会随着内容改变而变化

也导致了浏览器制作表格十分消耗性能

如今我们是否能让表格行为更加可控呢?

解决办法

使用 固定表格布局算法

<table>display: table 的元素添加样式

css
table {
    table-layout: fixed; /* 默认值是 auto,auto 就会出现上面所说的问题 */
    width: 100%; /* 最好加一下,防止兼容性问题 */
}

下面是添加了 table-layout: fixed; 的表格,上面列举了两者之间的比较

情况autofixed
不指定宽度各列根据内容分配宽度各列平均分配宽度
指定宽度仅第一行参与到列宽的计算中每一行都参与到列宽的计算中
指定的宽度相加超出总宽度如有两个单元格,第一个单元格宽度为 1000px,第二个单元格宽度为 2000px,但外层容器远远不足 3000px,则单元格会按比例缩小,分别得到总宽度的 33.3% 和 66.6%给单元个指定很大的宽度会生效,会溢出外层容器
禁止文本折行,text-overflow 是否生效不生效,文本过长会导致单元格宽度变长生效,如设置 text-overflow: ellipsis,文本过长部分换位省略号
大图片、代码块过长导致单元格宽度变长大图片、代码块会溢出单元格,但单元格宽度不变