【发布时间】:2018-05-23 04:17:36
【问题描述】:
我有一个包含很多行的简单 Bootstrap 表。 有没有办法在滚动窗口时固定表格标题,但让每个列标题的宽度等于文本最多的行的宽度。 因为当将表头位置设置为固定时,表头不会根据内容改变其宽度。 换句话说,根据列中最宽的值(标题中的标题或单元格中的值)设置每列的宽度。 有没有办法将这样的计算放在标题列宽上? 我想不出任何其他方法来做到这一点。 我正在使用角度。
这是我在将标题行的位置设置为固定时尝试过的一个 jsfiddle:JsFiddle 正如您现在所看到的,这些列与正文中的相应列不对齐。 我需要它们对齐,但没有为每一列设置固定宽度,因为我不知道我得到的数据会有多长。
HTML 代码:
<div class="col-md-12 tableDiv" >
<table class="table table-striped" >
<thead class="table-bordered">
<tr>
<th>Column1</th>
<th>Column2</th>
<th>Column3</th>
<th>Column4</th>
<th>Column5</th>
<th>Column6</th>
</tr>
</thead>
<tbody >
<tr>
<td > FIRST</td>
<td >asdasdfasf</td>
<td >fsdf</td>
<td>sdfsfd</td>
<td>sdfs</td>
<td>fsdfsdf</td>
</tr>
<tr>
<td > asdf</td>
<td >asdfa</td>
<td >fsdf</td>
<td>sdfsfd</td>
<td>sdfs</td>
<td>fsdfsdf</td>
</tr>
<tr>
<td > asdf</td>
<td >asdfa</td>
<td >fsdf</td>
<td>sdfsfd</td>
<td>sdfs</td>
<td>fsdfsdf</td>
</tr>
</tbody>
</table>
</div>
<div>
</div>
CSS:
.table-bordered tr {
position: fixed;
z-index:1;
top: 50px;
background: #fff;
}
【问题讨论】:
-
这个问题非常广泛,从某种意义上说,它取决于很多因素,什么可行,什么不可行。发布一些您迄今为止尝试过的代码或 jsfiddle 会更有帮助。
-
谢谢。我确实添加了代码和额外的解释:)
标签: angular css bootstrap-4