是否可以选择一组元素中的每四个元素?
例如:我有 16 <div>
元素……我可以写类似的东西。
div:nth-child(4),
div:nth-child(8),
div:nth-child(12),
div:nth-child(16)
有一个更好的方法吗?
原文由 Derek Adair 发布,翻译遵循 CC BY-SA 4.0 许可协议
是否可以选择一组元素中的每四个元素?
例如:我有 16 <div>
元素……我可以写类似的东西。
div:nth-child(4),
div:nth-child(8),
div:nth-child(12),
div:nth-child(16)
有一个更好的方法吗?
原文由 Derek Adair 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答5.1k 阅读✓ 已解决
5 回答2k 阅读
2 回答1.9k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.4k 阅读
4 回答2.2k 阅读
2 回答974 阅读✓ 已解决
顾名思义,
:nth-child()
允许您使用n
变量以及常数来构造算术表达式。 You can perform addition (+
), subtraction (-
) and coefficient multiplication (an
wherea
is an integer, including positive numbers ,负数和零)。以下是重写上述选择器列表的方法:
有关这些算术表达式如何工作的解释,请参阅我对 这个问题 的回答以及 规范。
请注意,此答案假定同一父元素中的所有子元素都具有相同的元素类型
div
。 If you have any other elements of different types such ash1
orp
, you will need to use:nth-of-type()
instead of:nth-child()
to ensure你只计算div
元素:对于其他所有内容(类、属性或这些的任何组合),您正在寻找与任意选择器匹配的第 n 个子项,您将无法使用纯 CSS 选择器执行此操作。请参阅我对 这个问题 的回答。
顺便说一句,就
:nth-child()
而言,4n 和 4n + 4 之间没有太大区别。如果您使用n
变量,它从 0 开始计数。这是每个选择器将匹配的内容::nth-child(4n)
:nth-child(4n+4)
如您所见,两个选择器都将匹配上述相同的元素。在这种情况下,没有区别。