thead固定 tbody滚动
时间: 2024-02-01 10:14:03 浏览: 91
实现thead固定,tbody滚动的方式可以通过以下步骤:
1. 给tbody设置固定高度和overflow-y属性为scroll,使得tbody可以滚动。
2. 将thead的样式设置为position:fixed,使得它可以固定在表格顶部。
3. 给tbody中的每一行tr设置相同的宽度,以保证表格的列宽一致。
4. 如果需要,可以使用JavaScript来动态计算表格头部的宽度,并将其应用于tbody的每一行。
以下是一个示例代码:
HTML代码:
```
<table>
<thead>
<tr>
<th>Header 1</th>
<th>Header 2</th>
<th>Header 3</th>
</tr>
</thead>
<tbody>
<tr>
<td>Data 1</td>
<td>Data 2</td>
<td>Data 3</td>
</tr>
<tr>
<td>Data 4</td>
<td>Data 5</td>
<td>Data 6</td>
</tr>
<!-- more rows... -->
</tbody>
</table>
```
CSS样式:
```
table {
border-collapse: collapse;
width: 100%;
}
thead {
position: fixed;
top: 0;
}
tbody {
height: 300px;
overflow-y: scroll;
}
tbody tr {
display: table;
width: 100%;
table-layout: fixed;
/* Optional: set font-size, line-height, etc. */
}
```
JavaScript代码(可选):
```
// Dynamically set the width of the table header cells
const ths = document.querySelectorAll('thead th');
const trs = document.querySelectorAll('tbody tr');
for (let i = 0; i < ths.length; i++) {
const thWidth = ths[i].getBoundingClientRect().width;
for (let j = 0; j < trs.length; j++) {
trs[j].querySelectorAll('td')[i].style.width = thWidth + 'px';
}
}
```
阅读全文