Comme son nom l'indique, vous permet de construire une expression arithmétique en utilisant la variable en plus des nombres constants. Vous pouvez effectuer l'addition ( ), la soustraction ( ) et la multiplication des coefficients ( où est un entier, y compris des nombres positifs, des nombres négatifs et zéro).:nth-child()n+-ana
Voici comment réécrire la liste de sélecteurs ci-dessus:
div:nth-child(4n)
Pour une explication sur le fonctionnement de ces expressions arithmétiques, voir ma réponse à cette question , ainsi que la spécification .
Notez que cette réponse suppose que tous les éléments de l' enfant dans le même élément parent sont du même type d'élément, div. Si vous avez d'autres éléments de types différents tels que h1ou p, vous devrez utiliser :nth-of-type()au lieu de :nth-child()pour vous assurer de ne compter que les divéléments:
<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>
Pour tout le reste (classes, attributs ou toute combinaison de ceux-ci), lorsque vous recherchez le nième enfant qui correspond à un sélecteur arbitraire, vous ne pourrez pas le faire avec un sélecteur CSS pur. Voir ma réponse à cette question .
Soit dit en passant, il n'y a pas beaucoup de différence entre 4n et 4n + 4 en ce qui concerne :nth-child(). Si vous utilisez la nvariable, elle commence à compter à 0. Voici à quoi correspondrait chaque sélecteur:
: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
...
Comme vous pouvez le voir, les deux sélecteurs correspondront aux mêmes éléments que ci-dessus. Dans ce cas, il n'y a aucune différence.