因为老项目用到bootstrap table,只要固定头部,列数一多,就出现列对不齐的情况,看了网上多个解决方法都没用,最后找源码。
- 本项目是boostrap-table.min.js
找到如下代码(主要是找到给表头 fnt-cell宽度赋值的代码)f.length > 1 && (f = a(m[d[0].cellIndex])), f.find(".fht-cell").width(d.innerWidth())
- 改成
f.length > 1 && (f = a(m[d[0].cellIndex])), f.find(".fht-cell").width(d[0].getBoundingClientRect().width - (d.index() > 0 ? 1 : 0))
- 其根本原因是innerWidth拿到的是整型的宽度,而不是精确宽度,所以会出现错乱的情况, - 1是因为border-left的宽度,box-sizing: border-box不起作用是很怪