第n个孩子少跳过特定班级

Ofe*_*ila 5 css css-selectors less

我需要选择一个类的第n个子元素,而不要少计算一个特定类的元素。例如,给出:

li
li class =“ skip_this”
li
li
li

我想让第n个孩子在计数时跳过skip_this类,这意味着,如果我想要不是skip_this的第三个li,它将实际上选择第四个li,因为它不会使用skip_this来计数第一个。

Amm*_*CSE 4

使用:not()之类的

li:nth-child(2n):not(.skip_class){

}
Run Code Online (Sandbox Code Playgroud)

li:nth-child(2n):not(.skip_class){

}
Run Code Online (Sandbox Code Playgroud)
li:nth-child(2n):not(.skip_class){
    background:green;
    }
Run Code Online (Sandbox Code Playgroud)

更新

我的意图是,如果我想选择不是“skip_class”的第二个孩子,它将选择第三个孩子,因为第二个孩子是“skip_class”

使用直接兄弟选择器+,例如

li:nth-child(2n):not(.skip_class), .skip_class + :not(.skip_class)
Run Code Online (Sandbox Code Playgroud)

<ul>
 
   <li>test</li>
   <li class="skip_class">test</li>
   <li>test</li>
   <li>test</li>
   <li>test</li>
   <li>test</li>
  </ul>
Run Code Online (Sandbox Code Playgroud)
li:nth-child(2n):not(.skip_class), .skip_class + :not(.skip_class)
Run Code Online (Sandbox Code Playgroud)

乌德帕特

明确地说,尝试以条件(类)定位一组元素而不考虑某些同级元素是行不通的,因为nth-child它将nth-of-type定位所有同级元素或相同类型的同级元素。

当您添加条件( :not(.skip_class)) 时,它独立于其他选择器( nth-child)工作

请参阅我可以将 :nth-child() 或 :nth-of-type() 与任意选择器结合使用吗?