2

クラスを1から12にインクリメントし、変数リスト(これも12個の変数)に基づいて背景色を設定するセットアップを実行しようとしています。

私は近くにいますが、期待したものが得られません。これはSASSの制御ディレクティブへの私の最初の進出ですので、私の無知を許してください。

現在、クラスは正常にインクリメントされています。それは私が見逃している増分変数を選択する部分です。

@mixin colors {
        $colors: $orange, $blue, $lightBlue, $teal, $lightTeal, $green, $lightGreen, $darkOrange, $orange, $lightOrange, $yellow, $lightYellow;
        @each $color in $colors {
            background-color:#{$color};
        }       
    }

@for $i from 1 through 12 { 
    .block-#{$i} {
        span {
            @include colors;
        }
    }
}

これは次のようなものを出力しています:

.block-10 span {
    background-color: #faa21b;
    background-color: #005ca8;
    background-color: #0079c3;
    background-color: #0088a8;
    background-color: #009386;
    background-color: #00a05e;
    background-color: #589c45;
    background-color: #d4772b;
    background-color: #faa21b;
    background-color: #f7971f;
    background-color: #f9cc2a;
    background-color: #f6ee32;
}

理想的には、12ではなく1つの背景色の宣言が必要です。ただし、これは私が見逃している単純なものかもしれないと思います。任意の洞察をいただければ幸いです!

4

1 に答える 1

11

このようなもの?(ミックスインを使用している理由がわからない):

$orange: #faa21b;
$blue: #005ca8;
$lightBlue: #0079c3;
$teal: #0088a8;
$lightTeal: #009386;
$green: #00a05e;
$lightGreen: #589c45;
$darkOrange: #d4772b;
$orange: #faa21b;
$lightOrange: #f7971f;
$yellow: #f9cc2a;
$lightYellow: #f6ee32;
$i: 1;

@each $color in $orange, $blue, $lightBlue, $teal, $lightTeal, $green, $lightGreen, $darkOrange, $orange, $lightOrange, $yellow, $lightYellow {
    .block-#{$i} {
        span {
            background-color:#{$color};
        }
    }
    $i: $i + 1;
}

出力:

.block-1 span {
  background-color: #faa21b; }

.block-2 span {
  background-color: #005ca8; }

.block-3 span {
  background-color: #0079c3; }

.block-4 span {
  background-color: #0088a8; }

.block-5 span {
  background-color: #009386; }

.block-6 span {
  background-color: #00a05e; }

.block-7 span {
  background-color: #589c45; }

.block-8 span {
  background-color: #d4772b; }

.block-9 span {
  background-color: #faa21b; }

.block-10 span {
  background-color: #f7971f; }

.block-11 span {
  background-color: #f9cc2a; }

.block-12 span {
  background-color: #f6ee32; }
于 2013-02-04T22:00:44.370 に答える