1. ホーム
  2. sass

インデックスを持つ各ループ

2023-09-15 10:24:47

質問

ループの@eachで要素のインデックスを取得できないかと考えています。

以下のようなコードがあるのですが、もしかしたら $i 変数が最適な方法なのかどうか。

現在のコードです。

$i: 0;
$refcolors: #55A46A, #9BD385, #D9EA79, #E4EE77, #F2E975, #F2D368, #F0AB55, #ED7943, #EA4E38, #E80D19;

@each $c in $refcolors {
    $i: $i + 1;
    #cr-#{$i} strong {
        background:$c;
    }   
}

どのように解決するのですか?

まず最初に @each 関数はCompassからではなく、Sassからです。


質問の答えですが、これはeachループではできませんが、簡単に変換して @for ループに変換するのは簡単で、これができます。

@for $i from 1 through length($refcolors) {
    $c: nth($refcolors, $i);

    // ... do something fancy with $c
}