SASSの@forディレクティブ
@forディレクティブを使うと、
カウンター変数で指定された回数だけ
特定のスタイルを出力できます。
@forの最初の構文は次のようになります:
@for $var from (begin) through (end)
この場合、(begin)と(end)の値は 厳密に範囲に含まれます。 (begin)と(end)は整数を返す必要があることに 注意してください。これらはカウントの方向を 決定するためです。つまり、(begin)が(end)より 小さい場合、カウンターは増加します。 逆の場合は減少します。
最初の構文での@forディレクティブの動作を
次の例で見てみましょう:
@for $count from 1 through 5 {
.li-#{$count} {
width: $count + px;
}
}
コンパイル結果:
.li-1 {
width: 1px;
}
.li-2 {
width: 2px;
}
.li-3 {
width: 3px;
}
.li-4 {
width: 4px;
}
.li-5 {
width: 5px;
}
2番目の構文は次のようになります:
@for $var from (begin) to (end)
ここでは、(end)の値は除外されます。
前の例を2番目の構文で書いてみましょう:
@for $count from 1 to 5 {
.li-#{$count} {
width: $count + px;
}
}
生成されたコードに注目してください:
.li-1 {
width: 1px;
}
.li-2 {
width: 2px;
}
.li-3 {
width: 3px;
}
.li-4 {
width: 4px;
}
次のコードをコンパイルした結果はどうなりますか?
@for $var from 5 through 1 {
li-#{$var} {
padding: 10 * $var + px;
}
}
次のコードをコンパイルした結果はどうなりますか?
@for $var from 1 to 3 {
.navbar-link-#{$var} {
color: blue;
width: 10px * $var;
}
}