用例
我希望检测html表是否过宽,如果是,我希望将表头单元格翻转为垂直的(例如,使用writing-mode: vertical-lr;
)。
我想通过调整大小来更新:如果视图变得更大,单元格中的文本可能会再次变成水平的。
翻转条件是,带有水平标签的原始表是否会比其容器更宽。
问题
如何在不更改表本身的情况下,确定具有水平标签的表的宽度?
思考
我目前的想法是制作一个带有水平标签的表的不可见副本,并将其用作“传感器”。但我担心这会污染DOM并在某个地方引起副作用。此外,我需要随时更新这份副本。
是否有“最佳实践”或已知的模式来解决这个问题?
发布于 2022-08-09 08:17:09
其实很简单:
我们可以在脚本运行期间更改表上的css。一旦我们查询了像element.width
这样的属性,这将在脚本执行过程中导致重新流,但不会导致重绘。因此,这意味着我们可以在不需要克隆DOM元素的情况下进行测试,并且无需进行可见的更改。
请参阅https://developers.google.com/speed/docs/insights/browser-reflow
https://stackoverflow.com/questions/73222616
复制