javascript - 带有固定标题的 HTML 表格?

标签 javascript css html-table

是否有跨浏览器的 CSS/JavaScript 技术来显示长 HTML 表格,以便列标题在屏幕上保持固定并且不随表格主体滚动。想一想 Microsoft Excel 中的“卡住 Pane ”效果。

我希望能够滚动浏览表格的内容,但始终能够看到顶部的列标题。

最佳答案

这可以用四行代码干净地解决。

如果您只关心现代浏览器,使用 CSS 转换可以更轻松地实现固定 header 。听起来很奇怪,但效果很好:

  • HTML 和 CSS 保持原样。
  • 没有外部 JavaScript 依赖项。
  • 四行代码。
  • 适用于所有配置(表格布局:固定等)。
document.getElementById("wrap").addEventListener("scroll", function(){
   var translate = "translate(0,"+this.scrollTop+"px)";
   this.querySelector("thead").style.transform = translate;
});

对 CSS 转换的支持是 widely available除了 Internet Explorer 8-。

完整示例供引用:

document.getElementById("wrap").addEventListener("scroll",function(){
   var translate = "translate(0,"+this.scrollTop+"px)";
   this.querySelector("thead").style.transform = translate;
});
/* Your existing container */
#wrap {
    overflow: auto;
    height: 400px;
}

/* CSS for demo */
td {
    background-color: green;
    width: 200px;
    height: 100px;
}
<div id="wrap">
    <table>
        <thead>
            <tr>
                <th>Foo</th>
                <th>Bar</th>
            </tr>
        </thead>
        <tbody>
            <tr><td></td><td></td></tr>
            <tr><td></td><td></td></tr>
            <tr><td></td><td></td></tr>
            <tr><td></td><td></td></tr>
            <tr><td></td><td></td></tr>
            <tr><td></td><td></td></tr>
            <tr><td></td><td></td></tr>
            <tr><td></td><td></td></tr>
            <tr><td></td><td></td></tr>
            <tr><td></td><td></td></tr>
            <tr><td></td><td></td></tr>
            <tr><td></td><td></td></tr>
        </tbody>
    </table>
</div>

关于javascript - 带有固定标题的 HTML 表格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29947826/

相关文章:

html - 表格边框不显示 - 即使使用 .table-bordered 类

javascript - 在 jQuery 中添加表格行

html - 初学者 Web 开发人员 : How to create borders for Table Rows

javascript - 使用javascript仅显示银行账户的最后4位数字

javascript - 在 JavaScript 中逐行动态添加字幕到视频元素

python - 在 HTML 页面上打印时显示结果

css - 使用表行上的边框半径圆 Angular ,两个单元格在单元格边框处断开

javascript - 删除 Google Charts API 中的所有网格线

javascript - Webpack babel-loader 不解析箭头函数

html - 水平列表不起作用