CSS3改变背景颜色

Posted

技术标签:

【中文标题】CSS3改变背景颜色【英文标题】:CSS3 changing background colors 【发布时间】:2015-05-23 03:17:42 【问题描述】:

我想要一系列元素,我想要有增量的背景颜色,但我也不想硬编码它以便将来扩展。

<div class="container">
    <div>one</div>
    <div>two</div>
    <div>three</div>
</div>

我可以这样做:

.container div:nth-child(0) 
    background-color: #0000ff;

.container div:nth-child(1) 
    background-color: #000066;

.container div:nth-child(2) 
    background-color: #000000;

我宁愿用一条规则来做到这一点,这将允许更简洁的代码并允许更多的可扩展性(例如,6 个元素)。这甚至可能吗?我知道这样的事情对于 JQuery 来说非常简单,但如果可能的话,我宁愿只使用 CSS。

【问题讨论】:

我建议使用 CSS 预处理器,如 SASS 或 LESS。这非常适合此类用例;) 虽然这不能直接解决您的问题,但您可以通过使用循环来使用 LESS 之类的预处理器来实现您所说的。看看这个答案***.com/questions/21440789/…。 我听说过 LESS,虽然我从未使用过它。我会确保检查出来。 【参考方案1】:

你可以用一个非常大的渐变来处理这个问题,并且只设置位置

.container div 
  background-image: linear-gradient(yellow, blue);
  background-size: 20000px 20000px;
  

.container div:nth-child(1) 
  background-position: 0% 0%;


.container div:nth-child(2) 
  background-position: 0% 30%;


.container div:nth-child(3) 
  background-position: 0% 100%;
<div class="container">
    <div>one</div>
    <div>two</div>
    <div>three</div>
</div>

【讨论】:

有趣的概念。这是普遍支持的吗?在我的浏览器 (Firefox) 上,所有 3 个框看起来都一样。 有一个错误影响了 FF。已更正!

以上是关于CSS3改变背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

CSS3可切换背景颜色的日历控件

改变选中区域的文字和背景颜色

CSS3 中 ul li:hover 上的背景颜色填充错误?

可以用css3改变复选框的背景色和勾上的颜色吗 一定要用js?

css3背景颜色渐变啥颜色好

背景颜色和背景图像 CSS3 之间的过渡