Ist es möglich, beispielsweise jedes vierte Element in einer Reihe von Elementen auszuwählen?
Bsp.: Ich habe 16 <div>
Elemente ... Ich könnte so etwas schreiben.
div:nth-child(4),
div:nth-child(8),
div:nth-child(12),
div:nth-child(16)
Gibt es einen besseren Weg, dies zu tun?
css
css-selectors
Derek Adair
quelle
quelle
Antworten:
Wie der Name schon sagt, können Sie mit der Variablen zusätzlich zu konstanten Zahlen einen arithmetischen Ausdruck erstellen. Sie können Addition ( ), Subtraktion ( ) und Koeffizientenmultiplikation durchführen ( wobei es sich um eine Ganzzahl handelt, einschließlich positiver Zahlen, negativer Zahlen und Null).
:nth-child()
n
+
-
an
a
So würden Sie die obige Auswahlliste neu schreiben:
Eine Erklärung zur Funktionsweise dieser arithmetischen Ausdrücke finden Sie in meiner Antwort auf diese Frage sowie in der Spezifikation .
Beachten Sie, dass bei dieser Antwort davon ausgegangen wird, dass alle untergeordneten Elemente innerhalb desselben übergeordneten Elements vom gleichen Elementtyp sind
div
. Wenn Sie andere Elemente unterschiedlichen Typs wieh1
oder habenp
, müssen Sie:nth-of-type()
stattdessen verwenden,:nth-child()
um sicherzustellen, dass Sie nurdiv
Elemente zählen :Für alles andere (Klassen, Attribute oder eine beliebige Kombination davon), bei dem Sie nach dem n-ten Kind suchen, das einem beliebigen Selektor entspricht, können Sie dies nicht mit einem reinen CSS-Selektor tun. Siehe meine Antwort auf diese Frage .
Übrigens gibt es keinen großen Unterschied zwischen 4n und 4n + 4 in Bezug auf
:nth-child()
. Wenn Sie dien
Variable verwenden, beginnt sie bei 0 zu zählen. Dies ist, was jeder Selektor entsprechen würde::nth-child(4n)
:nth-child(4n+4)
Wie Sie sehen können, stimmen beide Selektoren mit den gleichen Elementen wie oben überein. In diesem Fall gibt es keinen Unterschied.
quelle
tr td:nth-child(4)
. Beachten Sie das Fehlen von n in KlammernSiehe: http://css-tricks.com/how-nth-child-works/
quelle
Versuche dies
quelle
Sie benötigen das richtige Argument für die
nth-child
Pseudoklasse.Das Argument sollte in der Form vorliegen
an + b
, dass jedes a- te Kind ab b übereinstimmt .Beide
a
undb
sind optionale Ganzzahlen und beide können Null oder negativ sein.a
null ist, dann gibt es keine „jedes a te Kind“ Klausel.a
negativ, erfolgt der Abgleich rückwärts abb
.b
Null oder Negativ ist, ist es möglich, einen äquivalenten Ausdruck mit Positiv zu schreiben,b
z . B.4n+0
ist dasselbe wie4n+4
. Ebenso4n-1
ist das gleiche wie4n+3
.Beispiele:
Wählen Sie jedes 4. Kind aus (4, 8, 12, ...)
Wählen Sie jedes 4. Kind ab 1 (1, 5, 9, ...) aus.
Code-Snippet anzeigen
Wählen Sie jedes 3. und 4. Kind aus 4er-Gruppen aus (3 und 4, 7 und 8, 11 und 12, ...)
Code-Snippet anzeigen
Wählen Sie die ersten 4 Elemente aus (4, 3, 2, 1).
Code-Snippet anzeigen
quelle