You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为表格中首个.gold/.silver/.bronze行添加CSS样式

解决方案

要实现仅为首次出现的.gold、.silver、.bronze类<tr>添加样式,可以利用CSS的后续兄弟选择器结合:not()伪类,完美适配你提到的两种特殊情况,具体代码如下:

/* 为第一个.gold行添加样式 */
tr.gold:not(.gold ~ .gold) {
  background-color: #ffd700;
  /* 其他自定义样式 */
}

/* 为第一个.silver行添加样式 */
tr.silver:not(.silver ~ .silver) {
  background-color: #c0c0c0;
  /* 其他自定义样式 */
}

/* 为第一个.bronze行添加样式 */
tr.bronze:not(.bronze ~ .bronze) {
  background-color: #cd7f32;
  /* 其他自定义样式 */
}

原理说明

  • .gold ~ .gold:匹配所有在第一个.gold元素之后的同类别<tr>,也就是AJAX注入的重复行。
  • :not(.gold ~ .gold):排除上述后续的重复行,最终只会选中页面中第一个出现的.gold行,不管它前面是否存在.my-rank行。
  • 同理,.silver和.bronze的选择逻辑完全一致,不受其他类别行的干扰。

为什么之前的伪选择器无效?

  • :first-child:仅当目标元素是父容器的第一个子元素时生效,如果前面有.my-rank行,第一个.gold就不是first-child,会失效。
  • :first-of-type:匹配同类型元素的第一个,这里所有<tr>都是同类型,所以会选中第一个<tr>(如果是.my-rank就不符合需求),无法精准定位到第一个.gold/.silver/.bronze。

内容的提问来源于stack exchange,提问作者donbuche

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 10:30:44