Sassの主な機能(2)
制御構文
Sassでは、条件分岐や繰り返しといった制御をCSSに反映することができます。今回は、よく利用する条件分岐と繰り返しの構文を紹介します。
条件分岐
@if 条件1 {
条件1が成立した場合(条件1がtrue)の処理
} @else if 条件2 {
条件2が成立した場合(条件2がtrue)の処理
} @else {
条件1、条件2が成立しなかった場合の処理
}
$name : caption; //変数nameにcaptionを設定する
$is-title : true; //変数is-titleにtrueを設定する
$caption-number : 1; //変数caption-numberに1を設定する
a{
//----条件について----//
//条件 A == BでAとBが同一であれば条件成立です
//変数nameがtitleという値だったら条件成立
@if $name == title {
font-size:20px;
//変数nameがcaptionという値の場合
} @else if $name == caption {
font-size:15px;
$is-title : false;//変数is-titleにfalseを設定する
//変数nameがtitleでもcaptionでもない場合
} @else {
font-size:10px;
}
}
#title {
@if $is-title { //変数is-titleがtrueか
color:green;
} @else {
//変数is-titleがfalseの場合
color:black;
$caption-number : 2;
}
}
.caption{
//----条件について----//
//A != B でAとBが等しくないときに条件成立 します
//A and Bで「AかつB」AB両方trueで条件成立、A or Bで「AまたはB」ABどちらかがtrueで条件成立です
//A >= 2 でAが2以上で条件成立 同様に「<=」「>」「<」が使用可能です
//変数caption-numberが0 かつ 2以上で条件成立
@if $caption-number != 0 and $caption-number >= 2 {
font-weight:bold;
}
}
a {
font-size: 15px;
}
#title {
color: black;
}
.caption {
font-weight: bold;
}
繰り返し
その1
@for 値を代入する変数名 from 開始値 to 終了値{
処理
}
その2
@for 値を代入する変数名 from 開始値 through 終了値{
処理
}
その3
@while 条件{
処理
}
その4
@each 値を代入する変数名 in リスト{
処理
}
/*
繰り返し処理その1
*/
//変数valueの値が1から開始して3未満になるまで繰り返す
@for $value from 1 to 3 {// 1~3までの値を変数valueに代入する
.capton#{$value}{ //文字列と変数を連結するときは変数を「#{}」で括る
padding:#{$value}px;
}
}
/*
繰り返し処理その2
*/
$total : 0;
.caption{
//変数valueの値が1から開始して3以下になるまで繰り返す
@for $value from 1 through 3 {
$total : $total + $value; //変数totalに変数valueの値を加えて変数valueに代入する
}
padding : #{$total}px; //変数valueの合計(1 + 2 + 3)
}
/*
繰り返し処理その3
*/
//変数valueの値が10から開始して30未満になるまで繰り返す
$value : 10;
@while $value < 30{
.capton#{$value}{
padding:#{$value}px;
}
$value : $value + 10; //変数valueに10を加えて変数valueに代入する
}
/*
繰り返し処理その4
*/
//変数color-listの値分だけ繰り返す
$color-list : red, green, black; //redとgreenとblackを値として設定する
@each $color in $color-list { //red→green→blackの順で変数colorに代入
.#{$color}{
color : $color;
}
}
/*
繰り返し処理その1
*/
.capton1 {
padding: 1px;
}
.capton2 {
padding: 2px;
}
/*
繰り返し処理その2
*/
.caption {
padding: 6px;
}
/*
繰り返し処理その3
*/
.capton10 {
padding: 10px;
}
.capton20 {
padding: 20px;
}
/*
繰り返し処理その4
*/
.red {
color: red;
}
.green {
color: green;
}
.black {
color: black;
}
この記事は参考になりましたか?
- SassとCompassをつかってCSSを効率作成しよう連載記事一覧
-
- Compassの実践と、オイシックスでの導入事例
- CSSフレームワーク「Compass」の基礎
- CSSを効率よく記述する「Sass」の主な機能
- この記事の著者
-
鈴木 健二(オイシックス株式会社)(スズキ ケンジ)
オイシックスにてスマホ開発担当。映像製作、DTPなどのデザイナー経験があり、フロントエンドからサーバサイドまで幅広く開発を行っている。現在仙台在住で、毎週東京のオイシックス本社まで通っている。得意分野はJavaScript、CSS。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
