微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

css – 如何在重复模式中选择一系列元素

假设有4行中有12个项目.
|  1   ||  2   ||  3   |
 |  4   ||  5   ||  6   |
 |  7   ||  8   ||  9   |
 |  10  ||  11  ||  12  |

我想选择第二排和第四排,我该怎么做?

请注意,行不在不同的HTML元素中,实际上它们都是ul li元素.

期望的结果:

|  1   ||  2   ||  3   |
 |--4---||--5---||--6---|
 |  7   ||  8   ||  9   |
 |--10--||--11--||--12--|

我试过玩这个:

li:nth-child(n+4)

它在前三个之后选择所有元素.
然后我尝试了这个:

li:nth-child(n+4):nth-child(-n+8)

这只选择4,5和6但我不能重复这种模式来选择10,11& 12也是. CSS中有这个解决方案吗?

解决方法

这是一个常见问题,但我想指出原因:nth-​​child(n 4):nth-​​child(-n 6)只匹配一个特定范围的元素,它只提供一个起始点(n 4)和单个终点(-n 6).唯一可以大于或等于4且小于或等于6的元素是4,5和6,因此使用相同的选择器不可能匹配此范围之外的元素.添加更多:nth-​​child()伪将仅缩小匹配范围.

解决方案是根据列来考虑这一点,假设每行总是有3列(元素).你有三列,所以你需要三个独立的:nth-​​child()伪.第一列中的元素4和10分开6个元素,因此所有:nth-​​child()伪的参数需要以6n开头.

An B表达式中的b部分可以是4,或0,-1和-2 – 它们都匹配同一组元素:

> li:nth-​​child(6n 4),li:nth-​​child(6n 5),li:nth-​​child(6n 6)
> li:nth-​​child(6n),li:nth-​​child(6n-1),li:nth-​​child(6n-2)

你不能用一个:nth-​​child()伪类,或者由nth-child()伪的任意组合组成的单个复合选择器,因为An B表示法根本不允许构造这样的表达式匹配所述范围内的元素.

原文地址:https://www.jb51.cc/css/217467.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。