0

所以我有一些这样定义的颜色:

$blue_1     : #ecf5f9;
$blue_2     : #cfe5ef;
$blue_3     : #b1d5e6;

现在我想为每种颜色自动创建 .blue_{number} 类。到目前为止,我得到了:

@for $i from 1 through 12{
    .blue_#{$i}{
        color: $blue_#{$i};
    }   
}

但是 'color:$blue_#{$i}' 不起作用。我怎样才能以另一种方式引用变量?!我卡住了。

4

2 回答 2

1

你可以做这样的事情

函数 nth 的来源

SCSS

$colors : #ecf5f9 #cfe5ef #b1d5e6;
@for $i from 1 through 3 {
  h1.blue-#{$i}
    {
      background-color : nth($colors, $i)  
     }
}

HTML

<h1 class="blue-1">blue one</h1>
<h1 class="blue-2">blue two</h1>
<h1 class="blue-3">blue three</h1>

演示

演示

于 2013-05-16T15:08:58.690 回答
0

您可以使用 for 循环执行此操作,如下所示:

$blue_1     : #ecf5f9;
$blue_2     : #cfe5ef;
$blue_3     : #b1d5e6;

@for $i from 1 through 9 {
    @if $i == 1 {
        $bg_color: $blue1
    }
    @if $i == 2 {
        $bg_color: $blue2
    }
    .....

    .blue#{$i} 
        background-color: #{!bg_color}
}

该代码应返回如下内容:

.blue1 {
  background-color:#ecf5f9;
}
.blue2 {
  background-color:#cfe5ef;
}
于 2013-05-16T11:02:47.437 回答