gpt4 book ai didi

javascript - 没有指定宽度的表格的 CSS 固定标题

转载 作者:太空宇宙 更新时间:2023-11-04 01:15:28 25 4
gpt4 key购买 nike

我已经搜索了很多次以找到正确的解决方案,当我们向下滚动正文 (tbody) 部分时,使表头 (thead) 保持不变。有那么多解决方案,但对我没有任何帮助。

一些尝试过的链接:

大多数链接都为每个 tr td 使用固定宽度,但我需要它而不指定元素的任何宽度,因为表格是动态生成的。标题和内容可长可短,因此宽度取决于内容。

有任何其他解决方案来正确对齐 thtd 吗?

.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>

最佳答案

您可以使用 position:sticky 固定 header ,这样

  • table 包裹在 relative div 中,其高度要固定。
  • 将“th”指定为sticky。因为 sticky 仅适用于表内的 thtd
  • 为第 th 提供背景颜色,否则它将显示为透明。
  • th 上指定的 CSS 边框将在标题固定在顶部后消失(出于某种原因我不知道)。

.fixed-headers {
width: 100%;
position: relative;
overflow-y: scroll;
height: 300px;
}

.fixed-headers table {
table-layout: fixed;
width: 100%;
}

.fixed-headers thead tr th {
position: sticky;
top: 0px;
background-color: white;
}
<div class="fixed-headers">
<table 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>
</div>

关于javascript - 没有指定宽度的表格的 CSS 固定标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50250884/

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