可以选择一组元素中的每四个元素吗
例:我有16个<;部门>元素。。。我可以写这样的东西
分区:第n个子项(4),
分区:第n个孩子(8),
分区:第N个孩子(12),
分区:第n名儿童(16)
有更好的方法吗
顾名思义,:nth-child()允许您在常量之外使用n变量构造算术表达式。您可以执行加法(+)、减法(-)和系数乘法(an,其中a是整数,包括正数、负数和零)
以下是如何重写上述选择器列表:
分区:第n个子项(4n)
有关这些算术表达式如何工作的解释,请参见我对这个问题的回答以及规范
请注意,此答案假设同一父元素中的所有子元素都属于相同的元素类型,div。如果您有任何其他不同类型的元素,如h1或p,则需要使用:nth-of-type()而不是:nth-child(),以确保只计算div元素:
<;车身>;
<;h1></h1>;
<;部门>;1</部门>&书信电报;部门>;2</部门>;
<;部门>;3</部门>&书信电报;部门>;4</部门>;
<;h2></h2>;
<;部门>;5</部门>&书信电报;部门>;6</部门>;
<;部门>;7</部门>&书信电报;部门>;8</部门>;
<;h2></h2>;
<;部门>;9</部门>&书信电报;部门>;10</部门>;
<;部门>;11</部门>&书信电报;部门>;12</部门>;
<;h2></h2>;
<;部门>;13</部门>&书信电报;部门>;14</部门>;
<;部门>;15</部门>&书信电报;部门>;16</部门>;
</车身>;
对于其他所有内容(类、属性或它们的任何组合),如果您要查找与任意选择器匹配的第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
...
正如您所看到的,两个选择器将匹配上面相同的元素。在这种情况下,没有区别