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+-ana
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 h1oder haben p, müssen Sie :nth-of-type()stattdessen verwenden, :nth-child()um sicherzustellen, dass Sie nur divElemente 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 nVariable 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.