Sass(SCSS)で制御文@if/@else if/@elseを使用する方法
当サイトはアフィリエイト広告を利用しています。
Sassを書籍で学びたい方や初学者の方におすすめな書籍です。
Sassの概要や文法はもちろん、導入方法やフレームワーク、筆者が実際に仕事の現場で使用している実践的なテクニックまで幅広く紹介されています。
実際、初学時にかなりお世話になった書籍です。一緒に勉強しませんか?
		
						¥2,138						(2022/06/04 15:36時点 | Amazon調べ)
					
				
							 ポチップ
					ポチップ
				実行環境
| OS | macOS Catalina 10.15.7 | 
| Sass | 1.34.0 | 
実行環境がない方は、こちらの記事を参考にしてください。
Sass(SCSS)で制御文@if/@else if/@elseを使用する方法
今回は、Sass(SCSS)で制御文@if/@else if/@elseを使用する方法をご紹介します。
以下の例では、@mixinで再利用可能なスタイルを指定しています。
引数として受け取った値をスタイル内で条件式に使用しています。
@mixin button($sns, $fill: true) {
  // $colorにorangeを代入
  $color: orange;
  @if $sns == twitter {
    // $snsが"twitter"の場合、$colorにdeepskyblueを代入
    $color: deepskyblue;
  } @else if $sns == fb {
    // $snsが"fb"の場合、$colorにroyalblueを代入
    $color: royalblue;
  } @else if $sns == line {
    // $snsが"line"の場合、$colorにlimeを代入
    $color: lime;
  } @else {
    // NOP
    // $colorにorangeが代入されている状態
  }
  @if $fill {
    // $fillがtureの場合
    background-color: $color;
    border: 0;
    color: white;
  } @else {
    // $fillがture以外の場合
    background-color: white;
    border: solid 2px $color;
    color: $color;
  }
  border-radius: 100%;
  font-weight: bold;
  padding: 8px 16px;
}
.button_twitter {
  @include button(twitter);
}
.button_fb {
  @include button(fb, true);
}
.button_line {
  @include button(line, false);
}
.button_custom {
  @include button(custom);
}.button_twitter {
  background-color: deepskyblue;
  border: 0;
  color: white;
  border-radius: 100%;
  font-weight: bold;
  padding: 8px 16px;
}
.button_fb {
  background-color: royalblue;
  border: 0;
  color: white;
  border-radius: 100%;
  font-weight: bold;
  padding: 8px 16px;
}
.button_line {
  background-color: white;
  border: solid 2px lime;
  color: lime;
  border-radius: 100%;
  font-weight: bold;
  padding: 8px 16px;
}
.button_custom {
  background-color: orange;
  border: 0;
  color: white;
  border-radius: 100%;
  font-weight: bold;
  padding: 8px 16px;
}変数や@mixinについては、以下の記事を参考にしてください。
[post_link_internal 1323]
[post_link_internal 1320]
お疲れさまでした
Sass(SCSS)で制御文@if/@else if/@elseを使用する方法をご紹介しました。
少しでも参考になれば幸いです。
