【发布时间】:2018-10-19 10:11:56
【问题描述】:
当我们向下滚动正文 (tbody) 部分时,我已经搜索了很多次以获得正确的解决方案来使表头 (thead) 保持不变。有很多解决方案,但没有任何帮助。
一些尝试过的链接:
- How to make Scrollable Table with fixed headers using CSS
- https://jsfiddle.net/dPixie/byB9d/3/
- http://maxdesign.com.au/jobs/sample-fixed-thead/index.htm
大多数链接都为每个tr td 使用固定宽度,但我需要它而不为元素指定任何宽度,因为表格是动态生成的。标题和内容可能长或短,因此宽度取决于内容。
还有其他解决方案可以正确对齐th 和td?
.fixed_headers {
width: 100%;
table-layout: fixed;
border-collapse: collapse;
}
.fixed_headers thead tr {
display: block;
position: relative;
}
.fixed_headers tbody {
display: block;
overflow: auto;
width: 100%;
max-height: 200px;
}
<table class="fixed_headers" border="1" cellpadding="5" cellspacing="0">
<thead>
<tr>
<th>Lorem Ipsums</th>
<th>ipsum dolor sit amet</th>
<th>consectetur adipiscing</th>
<th>do eiusmod tempor incididunt</th>
</tr>
</thead>
<tbody>
<tr>
<td>Sed ut perspiciatis unde omnis iste natus error sit voluptatem</td>
<td>accusantium doloremque laudantium</td>
<td>consequuntur magni dolores eos qui ratione voluptatem</td>
<td>quis nostrum exercitationem</td>
</tr>
<tr>
<td>quis nostrum exercitationem</td>
<td>Sed ut perspiciatis unde omnis iste natus error sit voluptatem</td>
<td>accusantium doloremque laudantium</td>
<td>consequuntur magni dolores eos qui ratione voluptatem</td>
</tr>
<tr>
<td>consequuntur magni dolores eos qui ratione voluptatem</td>
<td>quis nostrum exercitationem</td>
<td>Sed ut perspiciatis unde omnis iste natus error sit voluptatem</td>
<td>accusantium doloremque laudantium</td>
</tr>
<tr>
<td>consequuntur magni dolores eos qui ratione voluptatem</td>
<td>Sed ut perspiciatis unde omnis iste natus error sit voluptatem</td>
<td>accusantium doloremque laudantium</td>
<td>quis nostrum exercitationem</td>
</tr>
<tr>
<td>accusantium doloremque laudantium</td>
<td>consequuntur magni dolores eos qui ratione voluptatem</td>
<td>Sed ut perspiciatis unde omnis iste natus error sit voluptatem</td>
<td>quis nostrum exercitationem</td>
</tr>
<tr>
<td>Sed ut perspiciatis unde omnis iste natus error sit voluptatem</td>
<td>accusantium doloremque laudantium</td>
<td>consequuntur magni dolores eos qui ratione voluptatem</td>
<td>quis nostrum exercitationem</td>
</tr>
<tr>
<td>consequuntur magni dolores eos qui ratione voluptatem</td>
<td>Sed ut perspiciatis unde omnis iste natus error sit voluptatem</td>
<td>accusantium doloremque laudantium</td>
<td>quis nostrum exercitationem</td>
</tr>
<tr>
<td>accusantium doloremque laudantium</td>
<td>consequuntur magni dolores eos qui ratione voluptatem</td>
<td>Sed ut perspiciatis unde omnis iste natus error sit voluptatem</td>
<td>quis nostrum exercitationem</td>
</tr>
<tr>
<td>Sed ut perspiciatis unde omnis iste natus error sit voluptatem</td>
<td>accusantium doloremque laudantium</td>
<td>consequuntur magni dolores eos qui ratione voluptatem</td>
<td>quis nostrum exercitationem</td>
</tr>
</tbody>
</table>
【问题讨论】:
-
从 css 很难制作.. 可能需要 jquery 来计算宽度
-
@Kumar 如果需要 jquery 没问题..
标签: javascript html css html-table