You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何PrimeNG表格th/td固定宽度在Chrome中不生效但Firefox正常?

PrimeNG表格冻结列宽度异常问题分析

我使用PrimeNG表格(v15.4.1),为冻结列的<th>和<td>元素设置了如下样式:

max-width: 40px !important;
min-width: 40px !important;
width: 40px !important;
padding: 0px;

此外,父元素<tr>的box-sizing属性为border-box,且这些<th>/<td>元素内部无内容撑宽尺寸。在*Chrome(118.0.5993.70)*中,元素实际宽度有时为40px,有时变为48px或其他值;Firefox中宽度始终正常。

问题

是什么原因导致<th>/<td>元素(或其祖先元素)不遵守上述样式规则?

更新说明

该PrimeNG表格初始化时配置了以下选项:

[reorderableColumns]="true"
[resizableColumns]="true"
columnResizeMode="expand"
[scrollable]="true"
scrollHeight="flex"

这些配置会强制表格设置固定width和min-width像素值,各列也会被设置固定width和max-width样式。动态隐藏/显示列后,列宽总和与表格总宽度不匹配,加上表格宽度从本地存储恢复,两者不同步导致列宽不生效。PrimeNG仓库存在相关未解决问题。

总结

当表格固定width和min-width,且各<th>/<td>的width和max-width总和与表格宽度不匹配时,浏览器处理逻辑不同,导致Chrome中列宽不生效。


内容的提问来源于stack exchange,提问作者AsGoodAsItGets

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 21:43:26