gpt4 book ai didi

html - 修复水平滚动中的列

转载 作者:技术小花猫 更新时间:2023-10-29 11:47:26 25 4
gpt4 key购买 nike

当用户在 X 轴上滚动时,我目前正在尝试修复表格中的第一列。我正在使用这种结构:

<div class="table-wrapper">
<table id="consumption-data" class="data">
<thead class="header">
<tr>
<th>Month</th>
<th>Item 1</th>
</tr>
</thead>
<tbody class="results">
<tr>
<th>Jan</th>
<td>3163</td>
</tr>
<tr>
<th>Feb</th>
<td>3163.7</td>
</tr>
<tr>
<th>Mar</th>
<td>3163.7</td>
</tr>
<tr>
<th>Apr</th>
<td>3163.7</td>
</tr>
<tr>
<th>May</th>
<td>3163.7</td>
</tr>
<tr>
<th>Jun</th>
<td>3163.7</td>
</tr>

<tr>
<th>...</th>
<td>...</td>
</tr>
</tbody>
</table>
</div>

元素数量将由用户选择,即表格中可能有 90 个元素。这将需要在 X 轴上滚动。我的问题是:

如何固定 tbody 中的 th 标签的位置(以及 中的 th:first-child thead)?

我一直在查看其他一些线程,但是它们并没有真正解释我是如何实现固定列的,这让我很难理解代码的作用以及我应该做什么。

我还检查了人们在另一个表中拆分标题列的解决方案。这对我来说是不可能的,因为稍后我会将数据导出到其他系统。

我的CSS:

.table-wrapper { 
overflow-x:scroll;
overflow-y:visible;
}

这修复了滚动,现在带来了工作:

tbody th, 
thead th:first-child {}

有人有什么想法吗?

编辑:这是一个 jsFiddle:https://jsfiddle.net/DJqPf/5/

最佳答案

已解决

https://jsfiddle.net/DJqPf/7/

.table-wrapper { 
overflow-x:scroll;
overflow-y:visible;
width:250px;
margin-left: 120px;
}
td, th {
padding: 5px 20px;
width: 100px;
}
th:first-child {
position: fixed;
left: 5px
}

更新

$(function () {  
$('.table-wrapper tr').each(function () {
var tr = $(this),
h = 0;
tr.children().each(function () {
var td = $(this),
tdh = td.height();
if (tdh > h) h = tdh;
});
tr.css({height: h + 'px'});
});
});
body {
position: relative;
}
.table-wrapper {
overflow-x:scroll;
overflow-y:visible;
width:200px;
margin-left: 120px;
}


td, th {
padding: 5px 20px;
width: 100px;
}
tbody tr {

}
th:first-child {
position: absolute;
left: 5px
}
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-2.2.3.min.js"></script>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body>
<div>
<h1>SOME RANDOM TEXT</h1>
</div>
<div class="table-wrapper">
<table id="consumption-data" class="data">
<thead class="header">
<tr>
<th>Month</th>
<th>Item 1</th>
<th>Item 2</th>
<th>Item 3</th>
<th>Item 4</th>
</tr>
</thead>
<tbody class="results">
<tr>
<th>Jan is an awesome month</th>
<td>3163</td>
<td>3163</td>
<td>3163</td>
<td>3163</td>
</tr>
<tr>
<th>Feb</th>
<td>3163</td>
<td>3163</td>
<td>3163</td>
<td>3163</td>
</tr>
<tr>
<th>Mar</th>
<td>3163</td>
<td>3163</td>
<td>3163</td>
<td>3163</td>
</tr>
<tr>
<th>Apr</th>
<td>3163</td>
<td>3163</td>
<td>3163</td>
<td>3163</td>
</tr>
<tr>
<th>May</th>
<td>3163</td>
<td>3163</td>
<td>3163</td>
<td>3163</td>
</tr>
<tr>
<th>Jun</th>
<td>3163</td>
<td>3163</td>
<td>3163</td>
<td>3163</td>
</tr>

<tr>
<th>...</th>
<td>...</td>
<td>...</td>
<td>...</td>
<td>...</td>
</tr>
</tbody>
</table>
</div>

<div>
</div>
</body>
</html>

关于html - 修复水平滚动中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18826775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com