Như tên ngụ ý, cho phép bạn xây dựng một biểu thức số học bằng cách sử dụng biến ngoài số không đổi. Bạn có thể thực hiện phép cộng ( ), phép trừ ( ) và phép nhân hệ số ( trong đó là một số nguyên, bao gồm số dương, số âm và số không).:nth-child()
n
+
-
an
a
Đây là cách bạn sẽ viết lại danh sách bộ chọn ở trên:
div:nth-child(4n)
Để biết giải thích về cách các biểu thức số học này hoạt động, hãy xem câu trả lời của tôi cho câu hỏi này , cũng như thông số kỹ thuật .
Lưu ý rằng câu trả lời này giả định rằng tất cả các phần tử con trong cùng một phần tử cha là cùng loại phần tử , div
. Nếu bạn có bất kỳ yếu tố khác của các loại khác nhau như: h1
hay p
, bạn sẽ cần phải sử dụng :nth-of-type()
thay vì :nth-child()
để đảm bảo bạn chỉ đếm div
các yếu tố:
<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>
Đối với mọi thứ khác (các lớp, thuộc tính hoặc bất kỳ kết hợp nào trong số này), khi bạn đang tìm kiếm đứa con thứ n phù hợp với bộ chọn tùy ý, bạn sẽ không thể thực hiện điều này với bộ chọn CSS thuần. Xem câu trả lời của tôi cho câu hỏi này .
Nhân tiện, không có nhiều sự khác biệt giữa 4n và 4n + 4 liên quan đến :nth-child()
. Nếu bạn sử dụng n
biến, nó bắt đầu đếm ở 0. Đây là giá trị của mỗi bộ chọn:
: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
...
Như bạn có thể thấy, cả hai bộ chọn sẽ khớp với các yếu tố giống như trên. Trong trường hợp này, không có sự khác biệt.