Як випливає з назви, дозволяє побудувати арифметичний вираз, використовуючи змінну на додаток до постійних чисел. Ви можете виконати додавання ( ), віднімання ( ) та множення коефіцієнтів ( де це ціле число, включаючи додатні числа, від’ємні числа та нуль).:nth-child()
n
+
-
an
a
Ось як би ви переписали вищевказаний список селекторів:
div:nth-child(4n)
Щоб пояснити, як працюють ці арифметичні вирази, дивіться мою відповідь на це запитання , а також специфікацію .
Зверніть увагу , що ця відповідь передбачає , що всі дочірні елементи всередині одного батьківського елемента одного і того ж типу елемента div
. Якщо у вас є інші елементи різних типів, такі як, h1
або p
вам потрібно буде використовувати :nth-of-type()
замість того, :nth-child()
щоб переконатися, що ви рахуєте лише div
елементи:
<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>
У всьому іншому (класи, атрибути чи будь-яка їх комбінація), де ви шукаєте n-ту дитину, яка відповідає довільному селектору, ви не зможете зробити це за допомогою чистого CSS-селектора. Дивіться мою відповідь на це запитання .
До речі, різниця між 4n і 4n + 4 щодо 4 не дуже велика :nth-child()
. Якщо ви використовуєте n
змінну, вона починає рахуватись з 0. Ось що відповідатиме кожному селектору:
: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
...
Як бачите, обидва селектори будуть відповідати тим самим елементам, що і вище. У цьому випадку різниці немає.