在变量中使用SCSS变量

时间:2017-10-11 22:52:59

标签: css loops variables sass

我想使用如下的SCSS循环:

@each $var in dark, purple, green, cyan, silver, white {

  .text-#{$var} {
    color: nth($color-, $var);
  }
  .btn-#{$var} {
    background-color: nth($color-, $var);
  }
}

以使用以下变量:

$color-dark: #0D0E1E;
$color-purple: #333366;
$color-green: #33cc99;
$color-cyan: #00cccc;
$color-silver: #ccc;
$color-white: #fff;

但它不起作用。 $color-#{$var}效果不佳。我可以这样做吗?

1 个答案:

答案 0 :(得分:1)

nth 获取列表中的项目。第一个参数是列表,第二个参数是列表中的索引。 SASS也认为 $ 的任何内容都是变量,因此 $ color - 是一个变量。您尚未将 $ color - 定义为变量,这不是您的预期用途。

DOCS

但是你可以用地图获得你想要的结果......

DEMO

$color-dark: #0D0E1E;
$color-purple: #333366;
$color-green: #33cc99;
$color-cyan: #00cccc;
$color-silver: #ccc;
$color-white: #fff;

$colors: (
  dark: $color-dark,
  purple: $color-purple,
  green: $color-green,
  cyan: $color-cyan,
  silver: $color-silver,
  white: $color-white
);

@each $name, $val in $colors {
  .text-#{$name} {
    color: $val;
  }

  .btn-#{$name} {
    background-color: $val;
  }
}