1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Sassでeach文を書く

Last updated at Posted at 2021-01-07

はじめに

タイトルについて記事にしました。
この記事で得る内容は以下の通りです。

・ Sassでeach文を使って効率よく修正・変更をする方法

例えば、以下のようなSNSで共有する項目があったとします

スクリーンショット 2021-01-07 14.09.37.png

index.haml
%button.twitter twitterで呟く
%button.facebook facebookで共有する
%button.line LINEで開く
配列の定義

$変数名: ('文字列A', '文字列B', '文字列C');のように記述します。

style.scss
$sns: ('twitter', 'facebook', 'line');
each文の定義

@each $eachで使う変数名 in $配列の変数名{}のように記述します。
each文は配列の文字列を順番に取り出して、文字列の数だけ処理を行います。

style.scss
@each $value in $sns { 
}
連想配列の定義

今回は、twitter,facebook,lineそれぞれのボタンを、each文を使ってそれぞれに色をつけたいと思います。
まず、先程定義した変数$snsを連想配列を使い書き換えます。

style.scss
$sns: (
  'twitter': #00aced,
  'facebook': #305097,
  'line': #5ae628
);

コロンの左側が$key、右側が$valueとなります。
画像のように$keyをクラス名にし、$valuebackground-colorプロパティに当てます。

スクリーンショット 2021-01-07 17.25.57.png

@eachの横に、$keyとカンマ区切りで$valueと書くとそれぞれを呼び出すことができます。
また、$key$valueの変数名も自由に決めることができます。

$keyの呼び出し方が少し特殊で、呼び出すには#{$key}と記述します。
この記述方法をインターポレーションといいます。

Sass - チュートリアルより引用
変数はプロパティの値に使えるだけではありません。
#{} で括ることによってプロパティ名やセレクタに使うこともできます:

style.scss
@each $key, $value in $sns {
  button.#{$key} {
    background-color: $value;
  }
}

結果、それぞれ配列の$valueが順番に取り出されて、各ボタンにプロパティを適用することができました。

スクリーンショット 2021-01-07 18.11.12.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?