我正在尝试制作一个表格,a)可以按列排序,b)在保持标题不变的同时有一个用于正文的滚动条。为了创建我的表格(我仍在学习 HTML 和 JavaScript),我基于以下示例: Body scroll和Table Sorter。所以我的代码看起来与那些非常相似。
内容是在从数据库加载时生成的,效果很好。如果我只是在我的代码中使用排序功能,它也可以正常工作,如果我只对正文实现滚动也是如此。当我尝试合并它们时出现问题。发生的情况是标题显示得很好,而正文显示就好像其父容器仅具有第一列的宽度。
<table id="myTable" class="tablesorter">
<thead class="fixedHeader">
<tr>
<th><span class="text">Group</span></th>
<th><span class="text">Activities</span></th>
<th><span class="text">Classes</span></th>
<th><span class="text">Discussions</span></th>
<th><span class="text">Happy Hours</span></th>
<th><span class="text">Parties</span></th>
<th><span class="text">Workshops</span></th>
</tr>
</thead>
<tbody class="scrollContent">
<tr>
<td>Austin TNG</td>
<td></td>
<td></td>
<td><iframe iconcolor="#0000FF" src="SVG/Discussionx.svg" style="height:30px;width:30px;border:0px;color:white">1</iframe></td>
<td><iframe iconcolor="#0000FF" src="SVG/HHG.svg" style="height:30px;width:30px;border:0px;color:white">2</iframe></td>
.....
</tr>
<tr>
<td>...</td>
....
</tr>
....
</tbody>
</table>
这部分的 CSS 是:
div.table-scroll{
height:100%;
width:85%;
float:left;
overflow:hidden;
}
table.tablesorter {
font-family:arial;
background-color: #FFFFFF;
margin:10px 0pt 15px;
font-size: 90%;
width: 100%;
max-height: 100%;
height:auto;
text-align: center;
/*table-layout: fixed;*/
}
table.tablesorter thead tr .header {
background-image: url(bg.gif);
background-repeat: no-repeat;
background-position: center right;
cursor: pointer;
height:30px;
}
table.tablesorter thead tr th {
background-color: #000000;
color: #FFFFFF;
border: 1px solid #000000;
font-size: 120%;
padding: 4px;
height:30px;
position: relative;
overflow-x:hidden;
}
table.tablesorter tbody.scrollContent {
height: 85%;
width: 100%;
display: block;
overflow:auto;
}
table.tablesorter tbody td {
color: #3D3D3D;
padding: 4px;
background-color: #FFF;
vertical-align: middle;
height:30px;
}
如您所见,滚动条显示在第一列结束的位置。应该是“车间”栏结束的时候。
知道是什么原因造成的吗?“检查元素”部分中的代码对我来说似乎是正确的,这是我的浏览器看到 Javascript 生成的代码的方式。如果有人能给我一个关于在哪里解决这个问题的想法,我将不胜感激。