选择CSS中的每个第n个元素

可以选择一组元素中的每四个元素吗

例:我有16个<部门&gt元素。。。我可以写这样的东西

分区:第n个子项(4),
分区:第n个孩子(8),
分区:第N个孩子(12),
分区:第n名儿童(16)

有更好的方法吗

顾名思义,nth-child()允许您在常量之外使用n变量构造算术表达式。您可以执行加法(+)、减法(-)和系数乘法(an,其中a是整数,包括正数、负数和零)

以下是如何重写上述选择器列表:

分区:第n个子项(4n)

有关这些算术表达式如何工作的解释,请参见我对这个问题的回答以及规范

请注意,此答案假设同一父元素中的所有子元素都属于相同的元素类型,div。如果您有任何其他不同类型的元素,如h1p,则需要使用:nth-of-type()而不是:nth-child(),以确保只计算div元素:

<车身>
<h1&gt&lt/h1>
<部门>1&lt/部门&gt&书信电报;部门>2&lt/部门>
<部门>3&lt/部门&gt&书信电报;部门>4&lt/部门>
<h2&gt&lt/h2>
<部门>5&lt/部门&gt&书信电报;部门>6&lt/部门>
<部门>7&lt/部门&gt&书信电报;部门>8&lt/部门>
<h2&gt&lt/h2>
<部门>9&lt/部门&gt&书信电报;部门>10&lt/部门>
<部门>11&lt/部门&gt&书信电报;部门>12&lt/部门>
<h2&gt&lt/h2>
<部门>13&lt/部门&gt&书信电报;部门>14&lt/部门>
<部门>15&lt/部门&gt&书信电报;部门>16&lt/部门>
&lt/车身>

对于其他所有内容(类、属性或它们的任何组合),如果您要查找与任意选择器匹配的第n个子项,那么您将无法使用纯CSS选择器来执行此操作。看我对这个问题的回答


顺便说一下,关于:nth-child(),4n和4n+4之间没有太大区别。如果使用n变量,它将从0开始计数。这是每个选择器将匹配的内容:

:第n个子项(4n)

4(0)=0
4(1) = 4
4(2) = 8
4(3) = 12
4(4) = 16
...

:第n个子项(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
...

正如您所看到的,两个选择器将匹配上面相同的元素。在这种情况下,没有区别

发表评论