65.9K
CodeProject 正在变化。 阅读更多。
Home

大型 HTML 表格中的固定标题

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.76/5 (33投票s)

2006年6月25日

CPOL

2分钟阅读

viewsIcon

381424

downloadIcon

10719

有很多方法可以固定 HTML 表格的表头列和行。但是当表格变得更大时,大多数方法都不可用,因为滚动速度会变得非常慢。 在本文中,我将展示一种适用于 IE 的方法。

引言

有很多方法可以固定 HTML 表格的表头列和行。但是当表格变得更大时,大多数方法都不可用,因为滚动速度会变得非常慢。 在下面的示例中,我将展示一种适用于 IE 的方法。

我的 HTML 页面包含两个 div 和一个表格。

...
<div id="outerDiv">
 <div id="innerDiv">
  <table>
   ...
  </table>
 </div>
</div>
...

在我的示例中,表格如下所示(红色边框显示 innerDiv

Sample screenshot

主要思想是将带有表格的 innerDiv 复制三次,以便为表头行、表头列、表头行中的第一个单元格和表格主体分别创建一个 div

  • 在前三个 div 中,必须将 overflow 设置为 hidden
  • 在主体 div 中,如果主体大于可用空间,可以将 overflow 设置为 scroll。 此外,主体 div 中的表格需要绝对定位。 TopLeft 位置必须为负值(Top = 表头行的高度,Left = 表头列的宽度),以便表头不再超出主体 div 的范围。

通过复制整个表格,所有行和列将具有相同的宽度和高度。 如果您只将表格的第一行复制到表头 div,则表头列的宽度可能与主体列不同。 复制 div 后,我的 outerDiv 包含四个 innerDiv(红色边框显示 innerDiv

Sample screenshot

最后,需要同步滚动这些 div。 当您向右滚动时,表头行也必须向右移动,当您向下滚动时,表头列也需要移动。 我在 这里 找到了一种很好的方法来做到这一点。

Sample screenshot

您可以在 这里 查看在线演示。

© . All rights reserved.