是否有连续同级的CSS选择器

是否有连续同级的CSS选择器,css,css-selectors,Css,Css Selectors,我的清单如下: <ul> <li>Something</li> <li class="class1">Important</li> <li>I want this</li> <li>I want this</li> <li class="class1">Important</li> <li>I want this</li&g

我的清单如下:

<ul>
  <li>Something</li>
  <li class="class1">Important</li>
  <li>I want this</li>
  <li>I want this</li>
  <li class="class1">Important</li>
  <li>I want this</li>
  <li>I want this</li>
  <li>Something</li>
  <li>Something</li>
</ul>
  • 某物
  • 重要的
  • 我想要这个
  • 我想要这个
  • 重要的
  • 我想要这个
  • 我想要这个
  • 某物
  • 某物

在每个
.class1
元素之后,前两个
  • 元素是否有CSS选择器?

    .class1+li
    将选择随后的第一个同级元素。
    .class1+*+li
    将选择第二个

    要保持低特异性,您还可以使用:

    .class1 + *,
    .class1 + * + * {...}
    
    但是要理解,
    .class1
    只会选择适当的
    li
    元素



    这两种都是脆弱的选择器。脆弱性在于,即使稍微更改标记,它们也会断裂。考虑仅仅添加更多的类来针对适当的元素,并保持你的专一性低。

    第n类可能是你正在寻找的,第二个选择器的引用实际上是相当整齐的。“马丁,那么,这很可能会打动你的头脑。”阿齐兹,我从来没有遇到CSS选择器性能有影响的情况。我冒昧地猜测,任何遇到选择器性能问题的人都有一个更大的问题要解决(页面上的元素太多)。“这两个都是脆弱的选择器。脆弱的是,当你稍微更改标记时,它们都会断开。”这不是重点吗?OP只想针对紧随该类每个li之后的两个li元素。通过向以下两个元素中的每一个添加类来增加标记是没有意义的,只是为了在它们只会出现在该上下文中时能够以它们为目标-如果您无序分配这些类,那么您建议的类选择器将不正确匹配,这就是我所说的脆弱时钟,CSS是一种声明性语言,因此,当您只能使用名称时,避免试图描述深层关系路径是有益的。当我需要我妻子的父亲的兄弟的儿子的女儿传土豆时,我只要问她的名字就行了。回到这里的脆弱性问题,如果后来有人删除了一个
  • ,这样结构就是
    .class1+li+.class1
    ,你将有一个意外的行为。这些更改非常常见,而复杂的关系选择器很难进行更改,因为其意图不明确。