我有一张没有th元素的表格,只有td元素。有什么办法可以使我的第一行固定(作为标签)?表格像这样:
<table>
<tr>
<td>Name:</td>
<td>Age:</td>
</tr>
<tr>
<td>John</td>
<td>20</td>
</tr>
<tr>
......
</tr>
</table>
我想将第一行的“名称”和“年龄”字段固定。这样在滚动时,标签不会消失。
我有一张没有th元素的表格,只有td元素。有什么办法可以使我的第一行固定(作为标签)?表格像这样:
<table>
<tr>
<td>Name:</td>
<td>Age:</td>
</tr>
<tr>
<td>John</td>
<td>20</td>
</tr>
<tr>
......
</tr>
</table>
我想将第一行的“名称”和“年龄”字段固定。这样在滚动时,标签不会消失。
我已经寻找了一段时间的答案,最终我找到了一个非常好用的解决方案。
秘密就在这段代码中,它实现了表格的滚动功能。
thead, tbody, tr, td, th { display: block; }
但你可以在这里找到完整的示例 http://jsfiddle.net/T9Bhm/7/.
希望有所帮助! :)
所有方案都有缺点:标题行与内容没有正确对齐。其中一个解决方法是将宽度设置为某个值(绝对或百分比)。
基于pedromendessk的答案,我能够找到一个简洁的解决方案,使用了以下答案: how-do-i-make-a-table-scrollable
所以对于在问题中呈现的表格,解决方案如下:
tr:first-child {
position: sticky;
top: 0;
background: white;
}
个人而言,我会使用 th 作为表头,因为在添加 thead 和 tbody 后,使用 tr:first-child 不会正确工作。
我编写了一个插件,可以把任意一行(不仅限于th)固定在页面或容器的顶部。欢迎使用。 http://maslianok.github.io/stickyRows/
使用 position:fixed
属性可以实现该效果:
<tr style="position:fixed">
<td>Name:</td>
<td>Age:</td>
</tr>
编辑:
<tr style="position:fixed;top:0;background:#FFF;">
<td>Name:</td>
<td>Age:</td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
Example: http://jsfiddle.net/aVQjN/
position: fixed
并为该行设置背景颜色,否则当您滚动列表时,将会出现两层文本。<table width="400" border="1">
<tr style="position: fixed; background-color: grey;">
<td width="200">
Name
</td>
<td width="200">
Age
</td>
</tr>
<tr>
<td width="200">
</td>
<td width="200">
</td>
</tr>
<tr>
<td>
John
</td>
<td>
28
</td>
</tr>
<tr>
<td>
Jacob
</td>
<td>
22
</td>
</tr>
<tr>
<td>
Nicole
</td>
<td>
12
</td>
</tr>
</table>
tbl_Purcordr=$("#tbl_Purcordr").DataTable({
'paging': true,
'pageLength': 25,
'bLengthChange': false,
'sorting': false,
'filter': true,
'info': false,
'scrollY': 360,
'background': 'none',
'fixedHeader': {
'header': true,
'footer': true
}
});