首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Sass中调用循环中的不同变量颜色

在Sass中调用循环中的不同变量颜色
EN

Stack Overflow用户
提问于 2018-05-30 10:11:01
回答 2查看 400关注 0票数 0

我的页面上有20个不同的按钮(buttonCareCenter类),背景有10个不同的颜色。

而不是使用10次:

代码语言:javascript
复制
   &:nth-child(10n + x) {
      .btn.btn-primary {
          background-color: #xxxxxx;
       }
   }

我希望找到一种方法来使用循环@for和nth-child来为我的按钮设置正确的颜色。但似乎

代码语言:javascript
复制
#{$color-$i};

不是调用我的不同变量的正确方式。

代码语言:javascript
复制
$color-0: #ff5722;
$color-1: #ff4514;
$color-2: #647c8a;
$color-3: #3f51b5;
$color-4: #2196f3;
$color-5: #00b862;
$color-6: #afdf0a;
$color-7: #a7b61a;
$color-8: #f3e562;
$color-9: #ff9800;

.all-buttonCareCenter{
        @for $i from 0 through 9 {
            &:nth-child(10n + #{$i}) {
                .btn.btn-primary {
                    background-color: #{$color-$i};
                }
            }
        }

        .buttonCareCenter{
           height: $button-height;             
           border: 0;
           box-shadow: 0px 2px 2px 0px rgba(0,0,0,0.3);
        }
}

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-30 10:28:22

您可以通过在另一个名为$colors的变量中添加所有颜色并通过它循环来解决这个问题。如果其中一种颜色发生变化,维护起来就容易多了。

代码语言:javascript
复制
$button-height: 20px;

$color-0: #ff5722;
$color-1: #ff4514;
$color-2: #647c8a;
$color-3: #3f51b5;
$color-4: #2196f3;
$color-5: #00b862;
$color-6: #afdf0a;
$color-7: #a7b61a;
$color-8: #f3e562;
$color-9: #ff9800;

$colors: $color-0, $color-1, $color-2, $color-3, $color-4, $color-5, $color-6,
  $color-7, $color-8, $color-9;

.all-buttonCareCenter {
  @for $i from 1 through length($colors) {
    &:nth-child(#{length($colors)}n+#{$i}) {
      .btn.btn-primary {
        background-color: nth($colors, $i); 
      }
    }
  }
  .buttonCareCenter {
    height: $button-height;
    border: 0;
    box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.3);
  }
}

请参阅我创建的这个CodePen实例,单击右上?查看编译后的CSS,查看所有迭代的编译代码。

票数 0
EN

Stack Overflow用户

发布于 2018-05-30 10:28:07

我发现的另一个解决方案是:

代码语言:javascript
复制
%color-0 {
    background-color: #ff5722;
}
%color-1{
    background-color: #ff4514;
}
%color-2 {
   background-color: #647c8a;
}
%color-3{
   background-color: #3f51b5;
}
%color-4 {
   background-color: #2196f3;
}
%color-5{
   background-color: #00b862;
}
%color-6 {
   background-color: #afdf0a;
}
%color-7{
   background-color: #a7b61a;
}
%color-8 {
   background-color: #f3e562;
}
%color-9{
   background-color: #ff9800;
}

@for $i from 0 through 9 {
    &:nth-child(10n + #{$i}) {
        .btn.btn-primary {
             @extend %color-#{$i};
         }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50602005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档