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

前端之家收集整理的这篇文章主要介绍了css – 如何在重复模式中选择一系列元素前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设有4行中有12个项目.
  1. | 1 || 2 || 3 |
  2. | 4 || 5 || 6 |
  3. | 7 || 8 || 9 |
  4. | 10 || 11 || 12 |

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

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

期望的结果:

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

我试过玩这个:

  1. li:nth-child(n+4)

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

  1. 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表示法根本不允许构造这样的表达式匹配所述范围内的元素.

猜你在找的CSS相关文章