Answers:
顾名思义,它允许您使用除常数以外的变量构造算术表达式。您可以执行加法(),减法()和系数乘法(其中是整数,包括正数,负数和零)。: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之间没有太大区别: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
...
如您所见,两个选择器都将匹配与上面相同的元素。在这种情况下,没有区别。
tr td:nth-child(4)
。请注意,括号中没有任何n
div:nth-child(4n+4)
您需要nth-child
伪类的正确参数。
该参数的形式应an + b
为匹配从b开始的每个第 a 个孩子。
这两个a
和b
是可选的整数,既可以是零或负数。
a
为零,则没有“每次个孩子”的条款。a
为负,则从开始向后进行匹配b
。b
为零或负,则可以使用正写等效表达式,b
例如4n+0
与相同4n+4
。同样4n-1
是相同4n+3
。例子:
li:nth-child(4n) {
background: yellow;
}
<ol>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
</ol>