由于定位原因,我有一个表头需要(我相信)留在一个单独的表中。告诉表头根据下面不同<table>
内的tbody内容确定其列间距的最佳方法是什么?由于我正在处理的结构中的一些限制,很难将它们移动到同一个表中,所以不幸的是,这可能不是一个选项。
例如,我有这样的事情:
<table>
<thead>
<tr>
<th>One</th>
<th>Two</th>
<th>Three</th>
<th>Four</th>
<th>Five</th>
</tr>
</thead>
</table>
<div>
<p>Some keys here about what highlighted text below means</p>
</div>
<table>
<tbody>
<tr>
<td>One</td>
<td>Two</td>
<td>Three</td>
<td>Four</td>
<td>Five</td>
</tr>
<tr>
<td>One</td>
<td>Two</td>
<td>Three</td>
<td>Four</td>
<td>Five</td>
</tr>
</tbody>
</table>
顶部表头处于固定位置,因此当用户滚动表时,表和键将在其后面滚动。我无法找到一种方法让TH
与下面的TD
匹配,就像它们在同一个表中组合时一样。是否有一个我不知道的技巧使它们成为同一数据集的一部分?
答案 0 :(得分:2)
最简单的方法是确保两个表具有相同的父元素。然后将th
和第一行td
标记的宽度设置为相对百分比,
因此,由于两个元素具有相同的父元素,因此它们的宽度也将匹配。如下所示。
html,
body {
margin: 0px;
}
table {
width: 100%
}
&#13;
<table border="1" class="fix">
<thead>
<tr>
<th style="width:20%">One</th>
<th style="width:20%">Two</th>
<th style="width:20%">Three</th>
<th style="width:20%">Four</th>
<th style="width:20%">Five</th>
</tr>
</thead>
</table>
<div>
<p>Some keys here about what highlighted text below means</p>
</div>
<table border="1">
<tbody>
<tr>
<td style="width:20%">One</td>
<td style="width:20%">Two</td>
<td style="width:20%">Three</td>
<td style="width:20%">Four</td>
<td style="width:20%">Five</td>
</tr>
<tr>
<td>One</td>
<td>Two</td>
<td>Three</td>
<td>Four</td>
<td>Five</td>
</tr>
</tbody>
</table>
&#13;
这是针对表格td
的问题。现在,标题的固定位置可以像这样实现。
html,
body {
margin: 0px;
}
.fix {
position: fixed;
top: 0px;
}
.offset {
margin-top: 50px;
}
table {
width: 100%
}
&#13;
<table border="1" class="fix">
<thead>
<tr>
<th style="width:20%">One</th>
<th style="width:20%">Two</th>
<th style="width:20%">Three</th>
<th style="width:20%">Four</th>
<th style="width:20%">Five</th>
</tr>
</thead>
</table>
<div class="offset">
<p>Some keys here about what highlighted text below means</p>
</div>
<table border="1">
<tbody>
<tr>
<td style="width:20%">One</td>
<td style="width:20%">Two</td>
<td style="width:20%">Three</td>
<td style="width:20%">Four</td>
<td style="width:20%">Five</td>
</tr>
<tr>
<td>One</td>
<td>Two</td>
<td>Three</td>
<td>Four</td>
<td>Five</td>
</tr>
</tbody>
</table>
&#13;