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:
div:nth-child(4n)
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 wie h1
oder haben p
, müssen Sie :nth-of-type()
stattdessen verwenden, :nth-child()
um sicherzustellen, dass Sie nur div
Elemente zählen :
<body>
<h1></h1>
<div>1</div> <div>2</div>
<div>3</div> <div>4</div>
<h2></h2>
<div>5</div> <div>6</div>
<div>7</div> <div>8</div>
<h2></h2>
<div>9</div> <div>10</div>
<div>11</div> <div>12</div>
<h2></h2>
<div>13</div> <div>14</div>
<div>15</div> <div>16</div>
</body>
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 die n
Variable verwenden, beginnt sie bei 0 zu zählen. Dies ist, was jeder Selektor entsprechen würde:
:nth-child(4n)
4(0) = 0
4(1) = 4
4(2) = 8
4(3) = 12
4(4) = 16
...
:nth-child(4n+4)
4(0) + 4 = 0 + 4 = 4
4(1) + 4 = 4 + 4 = 8
4(2) + 4 = 8 + 4 = 12
4(3) + 4 = 12 + 4 = 16
4(4) + 4 = 16 + 4 = 20
...
Wie Sie sehen können, stimmen beide Selektoren mit den gleichen Elementen wie oben überein. In diesem Fall gibt es keinen Unterschied.