如何将表格行固定在顶部

n92*_*n92 10 html css

我有一个表,而元素,只有TD元素的存在.有没有办法让我的第一行固定(标签).桌子是这样的

<table>
  <tr>
    <td>Name:</td>
    <td>Age:</td>
  </tr>
  <tr>
    <td>John</td>
    <td>20</td>
  </tr>
  <tr>
    ......
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

我想要将名称和年龄字段固定为第一行.因此在滚动期间标签不会消失.

Rag*_*ine 9

我一直在寻找这个问题的答案,最后我找到了一些非常好的东西.

秘密在于这段代码,使得表格中的滚动成为可能

thead, tbody, tr, td, th { display: block; }
Run Code Online (Sandbox Code Playgroud)

但是你可以在http://jsfiddle.net/T9Bhm/7/找到一个完整的例子.

希望能帮助到你!:)


小智 6

所有解决方案都有一个缺点:标题行与内容没有正确对齐。使用的解决方法之一是将宽度设置为某个值(绝对值或百分比)。

根据 pedromendessk 的回答,我能够使用以下答案找到这个问题的简洁解决方案: how-do-i-make-a-table-scrollable

因此,对于问题解决方案中提出的表格将是:

tr:first-child {
  position: sticky;
  top: 0;
  background: white;
}
Run Code Online (Sandbox Code Playgroud)

就我个人而言,我会使用 th 作为表头,因为在添加 thead 和 tbody 后使用 tr:first-child 将无法正常工作。


Vit*_*nok 5

我写了可以冻结页面或容器顶部的任何行(不仅是行)的插件。随意使用它。 http://maslianok.github.io/stickyRows/


Fab*_*geb 2

设置position:fixed应该为你做到这一点:

<tr style="position:fixed">
    <td>Name:</td>
    <td>Age:</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

编辑:

<tr style="position:fixed;top:0;background:#FFF;">
    <td>Name:</td>
    <td>Age:</td>
</tr>

<tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

示例: http: //jsfiddle.net/aVQjN/

  • 当您在表格行上使用固定位置时,您必须设置表格单元格的宽度 - 如果列数超过几列,此解决方案将失败。 (3认同)