Ich habe gerade diese Frage hier auf Stack richtig beantwortet.CSS Child Descendants
Die Frage war, wie die ersten zwei li nach jedem .class1 Element ausgewählt werden.
<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>
Dies war die (gut) korrekt und akzeptierte Antwort:
.class1 + li will select the first subsequent sibling.
.class1 + * + li will select the second.
zu halten Spezifität niedrig, könnte man auch verwenden:
.class1 + *,
.class1 + * + * {...}
Nun, ich spiele herum mit diesem und fragte mich, warum das nicht funktioniert:
li.class1 li:nth-child(-n+2) {color:red;}
Aber funktioniert so:
li:nth-child(-n+2) {color:red;}
den Raum mit einem Pluszeichen ersetzt funktionieren würde;) – Lemnis
Eigentlich habe ich das schon probiert und es hat nicht funktioniert. Ich denke, + Zeichen wählt das erste angrenzende Element, so nth - funktioniert in diesem Fall nicht. – Vcasso