带有固定标题和固定列的 HTML 表格?

IT技术 javascript html css html-table
2021-02-07 16:44:59

是否有 CSS/JavaScript 技术来显示长 HTML 表格,以便列标题在屏幕上保持固定,第一列保持固定并随数据滚动。

我希望能够滚动表格的内容,但始终能够看到顶部的列标题和左侧的第一列。

如果有一个jQuery插件就太好了!如果它有帮助,我唯一关心的浏览器是 Firefox。

6个回答

pranav 发布链接的工作示例

http://jsbin.com/nolanole/1/edit?html,js,output

仅供参考:在 IE 6、7 和 8(兼容模式打开或关闭)、FF 3 和 3.5、Chrome 2 中测试。不适合屏幕阅读器(标题不是内容表的一部分)。

编辑 5/5/14:将示例移至 jsBin。这是旧的,但令人惊讶的是在当前的 Chrome、IE 和 Firefox 中仍然有效(尽管 IE 和 Firefox 可能需要对行高进行一些调整)。

谢谢。这对我帮助很大。我不得不修改代码以使用 setTimeout() 来让它处理更大的表,但这是一个很好的例子。
2021-03-27 16:44:59
在 winxp ie8 或 ff3.6 中对我不起作用
2021-04-02 16:44:59
jQuery.com 上托管的 jQuery 库的链接发生了变化,并且它们的重定向不正确......因此它在所有浏览器中都停止工作。我已经修复了指向 Google 服务器上文件的链接 - 希望那个应该更可靠。
2021-04-11 16:44:59

jQuery的数据表插件是实现类似Excel固定柱(一个或多个)和标头一个很好的方法。

请注意站点的示例部分和“附加内容”。
http://datatables.net/examples/
http://datatables.net/extras/

“附加”部分具有用于固定列和固定标题的工具。

固定列
http://datatables.net/extras/fixedcolumns/
(我相信此页面上的示例最适合您的问题。)

固定标题
http://datatables.net/extras/fixedheader/
(包括一个具有整页电子表格样式布局的示例:http : //datatables.net/release-datatables/extras/FixedHeader/top_bottom_left_right.html

注意:根据我的经验(如果我错了请纠正我),只有当所有表格单元格都具有colSpanand rowSpan= 1时才有效
2021-04-11 16:44:59

您可能正在寻找这个

但是它有一些已知的问题。

如何下载此解决方案?
2021-03-31 16:44:59
也添加下载链接
2021-04-09 16:44:59

我看到这个,虽然是一个老问题,但它是插入我自己的脚本的一个很好的地方:

http://code.google.com/p/js-scroll-table-header/

它无需配置即可工作,并且非常易于设置。

我有一种感觉,当可能有数千行时,为每一行分配唯一的 ID 可能不是最好的解决方案。
2021-04-09 16:44:59

如果您想要的是在表格中的数据垂直滚动时保留标题,您应该实现一个 <tbody> 样式为“overflow-y: auto”,如下所示:

<table>
  <thead>
    <tr>
      <th>Header1</th>
       . . . 
    </tr>
   </thead>
   <tbody style="height: 300px; overflow-y: auto"> 
     <tr>
       . . .
     </tr>
     . . .
   </tbody>
 </table>

如果 <tbody> 内容增长到高于所需高度,它将开始滚动。但是,无论滚动位置如何,标题都将固定在顶部。

@levik:至少在标准模式下使用 HTML 5 DOCTYPE 在几乎所有浏览器中都不起作用
2021-03-20 16:44:59
谢谢,这有助于固定标题部分,但固定列呢?
2021-03-25 16:44:59
它根本不起作用!
2021-04-07 16:44:59
溢出-y 是特定于毫秒的。您必须使用普通的溢出:自动。
2021-04-09 16:44:59
这不起作用...
2021-04-13 16:44:59