首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SCSS如何定义动态样式

SCSS如何定义动态样式
EN

Stack Overflow用户
提问于 2020-09-12 16:30:17
回答 1查看 211关注 0票数 0

下面是我当前发生编译错误的代码。

代码语言:javascript
复制
$color-1: #353a4b;
$color-2: #5563a9;
$color-3: #7184e7;
$color-4: #c788e6;
$color-5: #f76789;

@for $i from 1 through 5 {
  .bg-color-#{$i} {
    background-color: $color-#{$i};
  }

  .fg-color-#{$i} {
    color: $color-#{$i};
  }
}

这将给出以下错误

代码语言:javascript
复制
SassError: Undefined variable: "$color-".

我想用sass @for来定义动态样式。

代码语言:javascript
复制
.bg-color-1 {
  background-color: $color-1;
}
.bg-color-2 {
  background-color: $color-2;
}

...

有人能帮我吗?提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-12 16:49:07

一个正确的解决方案是map variables,然后使用@each循环来访问它们。科德芬

代码语言:javascript
复制
$colors: (
  color-1: #353a4b,
  color-2: #5563a9, 
  color-3: #7184e7, 
  color-4: #c788e6,
  color-5: #f76789,
);

@each $color in $colors {
  $index: index($colors, $color);
  $color: nth($color, 2);
  
  .bg-color-#{$index} {
    background-color: $color;
  }
  
  .fg-color-#{$index} {
    color: $color;
  }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63862498

复制
相关文章

相似问题

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