さらに条件分岐や繰り返し処理をすることもできる。これには頭に「@」を付けた命令文を記述して、JavaScriptなどのように比較演算子などを記述する。
特に繰り返し文は、メニューなどでそれぞれ違ったIDなどを持った要素にCSSを設定したいといったときに威力を発揮する。
$type: moge;
p {
@if $type == hoge{
color: blue;
} @else if $type == huga{
color: red;
} @else if $type == move{
color: green;
} @else {
color: black;
}
}
↓コンパイル
p {
color: green;
}
@for $i from 1 through 5 {
.nav-#{$i} { width: 2em * $i; }
}
↓コンパイル
.nav-1 {
width: 2em;
}
.nav-2 {
width: 4em;
}
.nav-3 {
width: 6em;
}
.nav-4 {
width: 8em;
}
.nav-5 {
width: 10em;
}
@each $str hoge, huga, moge, moga{
.#{$str }-name{
background-image: url('/images/#{$str}.png');
}
}
↓コンパイル
.hoge-name {
background-image: url("/images/hoge.png");
}
.huga-name {
background-image: url("/images/huga.png");
}
.moge-name {
background-image: url("/images/moge.png");
}
.moga-name {
background-image: url("/images/moga.png");
}
$i: 1;
@while $i < 5 {
.item-#{$i} { width: 2em * $i; }
$i: $i + 1;
}
↓コンパイル
.item-1 {
width: 2em;
}
.item-2 {
width: 4em;
}
.item-3 {
width: 6em;
}
.item-4 {
width: 8em;
}
SassでCSSをコンパイルする際、オプションを幾つか設定できる。オプションによって、可読率と圧縮率(実行速度)がトレードオフになるので、コーディング/デバッグ時と実行時で使い分ける必要があるだろう。変換の仕方を変える4つの各オプションは以下の通り、変換されたCSSを見比べてほしい。
#main {
color: #fff;
background-color: #000; }
#main p {
width: 10em; }
.content{
font-size: 10em;
font-weight: bold;
text-decoration: underline; }
#main {
color: #fff;
background-color: #000;
}
#main p {
width: 10em;
}
.content{
font-size: 10em;
font-weight: bold;
text-decoration: underline;
}
#main { color: #fff; background-color: #000; }
#main p { width: 10em; }
.huge { font-size: 10em; font-weight: bold; text-decoration: underline; }
#main{color:#fff;background-color:#000}#main p{width:10em}.huge{font-size:10em;font-weight:bold;text-decoration:underline}
ファイルサイズを極限まで削減したい場合は、「:compressed」を利用したい。
本稿で紹介し切れていないSassの機能もまだまだ存在する。しかし、ここで紹介した機能だけでも相当強力であることが分かるはずだ。さらなるSassの機能については、公式リファレンスを参考にしてほしい。
次回はSassの環境構築とDreamweaverでSassを利用する方法について紹介する。
本稿で紹介したscssファイルと変換したcssファイルを、GitHubに置いておいたので、どのように展開されているかを確認してみてほしい。本連載で作成したサンプルのコードやファイルは全てGitHubからダウンロードできる。
無料でCreative Cloudを使い倒せ(1):レスポンシブWebデザインから実機検証までサクッと
無料でCreative Cloudを使い倒せ(16):予備知識なしでCSS3アニメーションが捗る「CSSトランジション」機能なら、ここまでできる!
無料でCreative Cloudを使い倒せ(17):Web屋が知らないと残念過ぎるDreamweaver拡張機能のインストールと変換、管理Copyright © ITmedia, Inc. All Rights Reserved.