【发布时间】:2011-05-13 16:51:33
【问题描述】:
如何使用 JavaScript 计算表格中行的高度(以像素为单位)?
<table>
<tr>
<td>Cell 1</td>
<td>Cell 2</td>
</tr>
</table>
【问题讨论】:
-
注意:这不像
clientHeight、offsetHeight或scrollHeight那么简单。桌子上的边框间距开始发挥作用。 jsfiddle.net/xbtp1je8 -
@Brad 为什么要包括边框间距?从技术上讲,它不计入
tr的高度。这是两个tr之间的空白区域 -
@TemaniAfif 我的目标是确定行的有效高度,以便在具有数千行、大量单元格的虚拟网格中使用。一次在 DOM 中放入数千行并不快。因此,我使用了一种技术,其中仅显示滚动窗格中可见的行(以及它们周围的一些行)。这需要知道行的确切像素高度,包括边框间距。否则,滚动会关闭一点。
-
@TemaniAfif 我已经尝试过了,这在大多数情况下都有效,但在放大/缩小时似乎有点中断。
2px不知何故变成了1.75px。 (而且,这没有明确的border-spacing规则集......只是默认样式表。) -
@Brad - 我认为缩放问题与使用
offsetHeight作为基本测量值有关,因为它返回一个四舍五入的数字。您可以使用getBoundingClientRect().height返回分数高度并避免缩放问题(我认为)。
标签: javascript html css dom row