チャプター6では、Sassでの制御構文について解説します。制御構文を使用することで、より効率的にCSSを記述することができるようになります。
「CSSを効率的に書く!Sassの入門講座」の第6章です。この講座については以下から確認できます。
比較演算子と論理演算子
比較演算子について
Sassでは、比較演算子を使用することで、条件を判断することができます。比較演算子は、2つの値を受け取り、それらを比較し、結果を真true
か偽false
で返すものです。
Sassでは、次のような比較演算子が使用できます。
比較演算子 | 説明 |
---|---|
A==B | AはBと等しい |
A!=B | AとBは等しくない |
A>B | AはBより大きい |
A>=B | AはB以上 |
A<B | AはBより小さい |
A<=B | AはB以下 |
例えば、次のように、2つの値が等しいかどうかを判断することができます。
$value1: 10;
$value2: 10;
//※if構文については後述
@if $value1 == $value2 {
// ここに処理を記述
}
論理演算子について
Sassでは、and
or
not
を使用することで、論理演算を行うことができます。これらの演算子は、条件分岐や繰り返し処理を記述する際によく使用されます。
論理演算子 | 説明 |
---|---|
and | かつ 例:$変数1 and $変数2 |
or | または 例:$変数1 or $変数2 |
not | 否定 例:not $変数 |
条件分岐の記述方法
Sassでは、@if
を使用することで、条件分岐を記述することができます。@if
を使用することで、条件に応じて、異なるスタイルを適用することができます。
@if
の書き方は、次のようになります。
@if 条件 {
// ここに処理を記述
}
@if
を使用する場合、条件を記述する場所には、比較演算子や真偽値を使用することができます。
以下のサンプルでは、変数の値が偶数かどうかを判断し、条件に応じて処理を実行することができます。
$value: 10;
@if $value % 2 == 0 {
// ここに処理を記述
}
また、複数の条件を指定するには、else if
を使用します。
@if 条件 {
// ここに処理を記述
} @else if 条件 {
// ここに処理を記述
}
else
は、すべての条件を満たさなかった場合に処理を行うことができます。
@if 条件 {
// ここに処理を記述
} @else {
// ここに処理を記述
}
else if
やelse
を使用することで、より複雑な条件分岐を行うことができるようになります。
繰り返し処理の記述方法
Sassでは、@for
@while
@each
を使用した、3つの繰り返し処理を記述することができます。
「@for」を使った繰り返し処理の記述方法
@for
での繰り返し処理の基本的な構文は以下の2つです。
@for $変数 from 初期値 through 終了値 {
// ここに処理を記述
}
@for $変数 to $終了番号 {
// 処理
}
from
繰り返し処理を開始する番号を指定することができ、through
を使用すると、繰り返し処理を終了する番号を指定することができます。
to
を使用すると、繰り返し処理を終了する番号を指定することができます。
・through
の場合は終了値を含めて繰り返し処理を行います。
・to
の場合は終了値を含めずに繰り返し処理を行います。
「@while」を使った繰り返し処理の記述方法
@while
は、指定した条件が真(true)の間、処理を繰り返すことができます。
$変数: 条件;
@while $変数 {
// ここに処理を記述
$変数: 条件;
}
「@each」を使った繰り返し処理の記述方法
@each
は、指定した配列を1つずつ取り出して、繰り返し処理を行うことができます。
@each $変数 in $配列 {
// ここに処理を記述
}
繰り返し処理の途中で処理をスキップする「@continue」
@continue
を使用すると、繰り返し処理の中で指定した箇所以下をスキップすることができます。
@for $変数 from $開始番号 through $終了番号 {
// 処理
@if 条件 {
@continue
}
// 処理
}
繰り返し処理の途中で勝利を中段する「@break」
@break
を使用すると、繰り返し処理を強制的に中断することができます。スコープ内で最も内側にある繰り返し処理を強制的に終了させることができます。
@for $変数 from $開始番号 through $終了番号 {
// 処理
@if 条件 {
@break;
}
// 処理
}
解いてみよう!小テスト:本章の復習
制御構文について復習しましょう。
問1. SCSSで、条件分岐を行うために使用される構文はどれでしょうか?
- @if
- @switch
- @case
解答
答え:① @if
例: $fooがtrueであれば、body要素の背景色が赤になります。
$foo: true;
@if $foo {
body {
background-color: #ff0000;
}
}
body {
background-color: #ff0000;
}
問2. @forを使った繰り返し処理で、「$iを1から5まで1つずつ増やしながら、繰り返す」という処理を行いたい場合、どのように書くことができるでしょうか?
- @for $i from 1 through 5 { スタイル }
- @for $i from 1 to 5 { スタイル }
- @for $i in 1 to 5 { スタイル }
解答
答え:② @for $i from 1 to 5 { スタイル }
例: .item-1から.item-5までが生成され、それぞれの要素に対して、幅が100px、200px、300px、400px、500pxになります。
@for $i from 1 to 5 {
.item-#{$i} {
width: 100px * $i;
}
}
.item-1 {
width: 100px;
}
.item-2 {
width: 200px;
}
.item-3 {
width: 300px;
}
.item-4 {
width: 400px;
}
問3. @eachを使った処理で、「$colors配列の中身を1つずつ取り出しながら、繰り返す」という処理を行いたい場合、どのように書くことができるでしょうか?
- @each $color in $colors { スタイル }
- @each in $colors { $color { スタイル } }
- @each { $color in $colors { スタイル } }
解答
答え:① @each $color in $colors { スタイル }
例: .red, .green, .blueが生成され、それぞれの要素に対して、色がred, green, blueになります。
$colors: red, green, blue;
@each $color in $colors {
.#{$color} {
color: $color;
}
}
.red {
color: red;
}
.green {
color: green;
}
.blue {
color: blue;
}
これらを実際に実装したサンプルはダウンロード教材のchapter06フォルダで確認できます。
リスキリングでキャリアアップしてみませんか?
リスキリング(学び直し)は、経済産業省が推奨しており、
今だけ、最大70%のキャッシュバックを受けることができます。
最大70%の給付金が出るおすすめのプログラミングスクール!
国策で予算が決められているため申し込みが多い場合は早期に終了する可能性があります!
興味のある方はすぐに確認しましょう。
チャプター6 「制御構文を理解する」のまとめ
チャプター6では、Sassで制御構文を使用することで、条件分岐や繰り返し処理を行う方法ついて学びました。
- 比較演算子には、
==
!=
>
<
>=
<=
の6種類があり、値を比較することができる。 - 論理演算は、
and
or
not
の3種の演算子で行うある。 if
文は、指定した条件が真の場合には、その中の処理を実行する。else if
文を使用することで、複数の条件を記述することができる。else
文を使用することで、条件が偽の場合に実行する処理を記述できる。- 繰り返し処理には、
@for
文、@while
や@each
文を使用する。 @continue
で繰り返し処理をスキップできる。@break
で繰り返し処理を中段できる。
これらの技術を理解することで、Sassを使用した効率的でかつ複雑で柔軟なコーディングが可能になります。
チャプター
次章では、Sassの基本の「関数を理解する」学びます。
コメント