gpt4 book ai didi

html - 如何正确定位使用 tfoot、tbody 和 thead 的表中的最后一个 tr?

转载 作者:可可西里 更新时间:2023-11-01 13:25:15 26 4
gpt4 key购买 nike

我有一张 table 。

enter image description here

它目前包含一个 thead、tbody 和 tfoot 部分。

我想定位到表中的最后一行 (tr)。

如果我使用 tr:last-of-type,它会导致 3 行被定位:

enter image description here

这是因为它针对的是 thead 中的最后一个 tr,tbody 中的最后一个 tr,以及 tfoot 中的最后一个 tr。

我不希望它定位到 3 行。我只希望它以表格中的最后一行为目标。

我可以使用 tfoot tr:last-of-type,只要 tfoot 中至少有一个 tr 元素,它就可以工作:

enter image description here

但是,如果 tfoot 为空,或者表格缺少 tfoot 元素,则不会定位任何内容。

我想始终定位表格的绝对最后一行,仅使用 CSS。我该怎么做?

最佳答案

“始终以最后一行为目标,无论它在哪里”的一种简单方法就是

table > *:last-child > tr:last-of-type {
background-color: #0f0;
}
<table>
<thead>
<tr>
<th>A</th>
</tr>
</thead>
<tbody>
<tr>
<td>a</td>
</tr>
<tr>
<td>b</td>
</tr>
</tbody>
</table>

<table>
<thead>
<tr>
<th>A</th>
</tr>
</thead>
<tbody>
<tr>
<td>a</td>
</tr>
<tr>
<td>b</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>c</td>
</tr>
</tfoot>
</table>

虽然有一个问题,但这将按照您的描述进行。 <thead>的顺序, <tbody><tfoot>元素不是强制的,所以你实际上可以放一个 <tfoot><tbody> 之前使用与输出相同的表,在这种情况下实际上是最后一个 <tr>将被选中,这在视觉上不是最后一个 <tr> .

这需要一些额外的技巧:

/* the optimistic true last <tr> */
table > :last-child > tr:last-of-type,
/* any last <tr> within a <tfoot> */
table tfoot > tr:last-of-type {
background-color: #0f0;
}

/* reset any style in the true last <tr> if its parent is
preceded by a `<tfoot>` */
table > tfoot ~ :last-child > tr:last-of-type {
background-color: initial;
}

working fiddle

编辑:我忘了带空<tfoot>考虑到元素,这需要使用 :not:empty伪类(旧浏览器不支持),看起来像:

/* the optimistic true last <tr> */
table > :last-child > tr:last-of-type,
/* any last <tr> within a <tfoot> */
table tfoot > tr:last-of-type {
background-color: #0f0;
}

/* reset any style in the true last <tr> if its parent is
preceded by a `<tfoot>` */
table > tfoot:not(:empty) ~ :last-child > tr:last-of-type {
background-color: initial;
}

updated fiddle

关于html - 如何正确定位使用 tfoot、tbody 和 thead 的表中的最后一个 tr?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39521018/

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