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

如何在CSS中选中slide-active元素及其之后的第二个marg类元素

如何用CSS选中带有slide-active类的元素及其后第二个带marg类的元素?

首先先看你给出的HTML结构:

<div class="slick-track"> 
  <div class="marg first slide-active">1</div> 
  <div class="marg second">2</div> 
  <div class="marg third">3</div> 
  <div class="marg fourth">4</div> 
  <div class="marg fifth">5</div> 
  <div class="marg sixth">6</div> 
  <div class="marg seventh">7</div> 
</div>

要同时选中带slide-active类的元素,以及它之后的第二个带marg类的元素,可以用以下CSS选择器组合:

/* 同时选中两个目标元素 */
.slide-active,
.slide-active + .marg + .marg {
  /* 示例样式:添加黄色背景高亮 */
  background-color: #ffd700;
}

下面拆解一下这两个选择器的作用:

  • .slide-active:这个很直接,就是匹配所有带有slide-active类的元素,也就是你HTML里的第一个div(内容为1的那个)。
  • .slide-active + .marg + .marg:这里用到了相邻兄弟选择器(+),它只会匹配紧挨着前一个元素的兄弟元素。第一个+ .marg选中slide-active元素紧挨着的下一个带marg类的元素(内容为2的div),第二个+ .marg再选中这个元素紧挨着的下一个带marg类的元素——也就是你要找的“slide-active之后的第二个marg元素”(内容为3的div)。

如果后续你的HTML结构可能出现非marg类的元素插在目标元素中间,那可以换用更灵活的写法:

.slide-active,
.slide-active ~ .marg:nth-of-type(2) {
  /* 自定义样式 */
}

这里的~是通用兄弟选择器,会匹配slide-active之后所有带marg类的兄弟元素,再用:nth-of-type(2)筛选出其中的第二个。不过就你当前给出的结构来说,第一种相邻兄弟选择器的写法更精准,性能也更优。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:15:35