Come suggerisce il nome, ti permette di costruire un'espressione aritmetica usando la variabile oltre ai numeri costanti. È possibile eseguire addizioni ( ), sottrazioni ( ) e moltiplicazioni di coefficienti ( dove è un numero intero, inclusi numeri positivi, numeri negativi e zero).:nth-child()n+-ana
Ecco come riscrivere l'elenco di selettori sopra:
div:nth-child(4n)
Per una spiegazione sul funzionamento di queste espressioni aritmetiche, vedere la mia risposta a questa domanda , nonché le specifiche .
Si noti che questa risposta presuppone che tutti gli elementi figlio all'interno dello stesso elemento genitore sono dello stesso tipo di elemento, div. Se hai altri elementi di tipi diversi come h1o p, dovrai utilizzare :nth-of-type()invece di :nth-child()assicurarti di contare solo gli divelementi:
<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>
Per tutto il resto (classi, attributi o qualsiasi combinazione di questi), dove stai cercando l'ennesimo figlio che corrisponde a un selettore arbitrario, non sarai in grado di farlo con un selettore CSS puro. Vedi la mia risposta a questa domanda .
A proposito, non c'è molta differenza tra 4n e 4n + 4 per quanto riguarda :nth-child(). Se usi la nvariabile, inizia a contare da 0. Ecco cosa corrisponde a ciascun selettore:
: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
...
Come puoi vedere, entrambi i selettori corrisponderanno agli stessi elementi di cui sopra. In questo caso, non c'è differenza.