首页 > 文章列表 > 如何使用纯CSS实现元素颜色按n%3模式交替的效果?

如何使用纯CSS实现元素颜色按n%3模式交替的效果?

370 2025-03-27

如何使用纯CSS实现元素颜色按n%3模式交替的效果?

纯CSS实现元素颜色循环交替

本文介绍如何利用纯CSS,基于元素索引,实现元素颜色按n%3模式循环交替的效果。这种技术在创建视觉上吸引人的列表或网格布局时非常有用。

假设我们有以下HTML结构:

以及CSS变量定义:

.container {
  --color1: #fff;
  --color2: #da3838;
  --color3: rgb(49, 196, 23);
  p {
      /* 其他样式 */
  }
}

我们的目标是让每个

元素的背景颜色按照n%3的余数循环变化:

  • 第1个元素:--color1
  • 第2个元素:--color2
  • 第3个元素:--color3
  • 第4个元素:--color1
  • 以此类推...

CSS的nth-child伪类可以实现这一目标。通过巧妙地运用nth-child的语法,我们可以选择特定的元素并应用不同的样式。

解决方案:

.container p:nth-child(3n+1) {
  background-color: var(--color1);
}

.container p:nth-child(3n+2) {
  background-color: var(--color2);
}

.container p:nth-child(3n+3) {
  background-color: var(--color3);
}

这段CSS代码利用了nth-child(3n+x)选择器:

  • 3n+1 选择所有索引除以3余数为1的元素 (1, 4, 7, ...)
  • 3n+2 选择所有索引除以3余数为2的元素 (2, 5, 8, ...)
  • 3n+3 选择所有索引除以3余数为0的元素 (3, 6, 9, ...)

通过以上CSS代码,我们成功地实现了

元素背景颜色的循环交替效果,满足了n%3的模式要求。 这种方法简洁高效,完全使用纯CSS实现,避免了JavaScript的额外开销。

来源:1741924281