CSSの記述が楽しくなるSassについてのメモ
CSSを入れ子にしたり、変数やif文を使って制御できるSassについて調べてみた。 すでにCSS書けるなら直感的に理解できるし、Railsにはで標準で入ってるので即採用。
Sass概要
公式サイトはこちら。
Sass - Syntactically Awesome Stylesheets
トップにいる謎の熟女が魅力的!
記法が2種類(Sass, Scss)とあるけど、Scss(Sassy CSS)がメジャー。
gemとして配布されているので、インストールする。rubyが必要です。
gem install sass
Sassで書いたファイルの拡張子を.scssにして、.cssにコンパイルしてあげる。
sass style.scss:style.css
以下、主な機能のまとめです。公式サイトの記載順に並べてます。
[Nesting]入れ子にできる
直感的でわかりやすい。id:main配下のpにもcolor: redが適用されます。
#main{
    color: red;
    p {
      font-weight: bold;
    }
}
[Parent References]親要素を参照する&
「&」のついた部分がp:hoverと解釈されます。擬似要素や擬似クラスなんかを使う時に便利。
p {
    &:hover {
      color: red;
    }
}
[Variables]変数が使える
「$」使う。変数の種類は数値、文字列、色、真偽値、リストなどを扱えます。
$basecolor: "black";
#main {
  background: $basecolor;
}
[Operations and Functions][Interpolation]演算可能、変数の展開可能
四則演算ができます。また、#{$var}で変数が展開されます。
$maxWidth: 960px;
#main {
  width: #{maxWidth} - 200px;
}
[Mixin]
プロパティをまとめて管理できます。@mixinで定義して、@includeで適用。
@mixin color {
    color: red;
}
.label {
    font-size: 12px;
    @include color;
}
/* 引数も使える */
@mixin StrongFont($size) {
    font-weight: bold;
    font-size: $size;
}
[import]他のscssを取りこむ
取り込みたいファイル名の頭にアンダーバーを付けます。 (例) _style.scss
一方、取り込むファイルで、@importを指定する。
@import "style";
コメント
2種類の書き方があります。
1つはCSSと同じ記法。複数行コメントもできます。
/* comment */
もう1つはSCSS専用の記法。こちらはCSSにコンパイルする際に除去されます。
// comment