9
Feb 2015
by
難波 理恵
Sass(Syntactically Awesome Stylesheets)とは CSSを記述する為のメタ言語のひとつで、プログラミング言語の仕様を取り入れて効率的にCSSを定義できるようにした言語。
Sassのバージョン3.0からは、CSSの文法・記法を拡張して上記の機能を取り入れたSCSS(Sassy CSS)言語が採用された。
http://e-words.jp/w/Sass.html より抜粋
要するに、CSSの記法を拡張して変数とか、演算とか、ifとか書ける、とっても便利なもの。 似た言語にLESSというのもあります。
とりあえずSass導入の手順とLESSとの比較はとばします。
まず慣れろ。ということで、記法もいきなりSCSSにて。
実際のコンパイル例はこちら ↓
まず基本的な展開の為の設定を書き、
コンパイル設定(config.rb) http_path = "/" css_dir = "css" sass_dir = "scss" output_style = :expanded line_comments = false
続いて、こんな感じでscssをゴリゴリ書きます。
コンパイル前(sample.scss) // Variables $container-bg: #eee; $font-size-base: 14px; $line-height-computed: 1.4; $lines-to-show: 3; // Reset p { margin: 0; } // Multiline text with ellipsis // Supported IE and Firefox .container { background: #eee; overflow: hidden; width: 100%; p { font-size: $font-size-base; height: $font-size-base * $line-height-computed * $lines-to-show; line-height: $line-height-computed; position: relative; &:before, &:after { background: #eee; position: absolute; } &:before { content: "..."; top: $font-size-base * $line-height-computed * ($lines-to-show - 1); right: 0; } &:after { content: ""; height: 100%; width: 100%; } } }
scssをコンパイルすると、こんな感じで展開されます。
コンパイル後(sample.css) p { margin: 0; } .container { background: #eee; overflow: hidden; width: 100%; } .container p { font-size: 14px; height: 58.8px; line-height: 1.4; position: relative; } .container p:before, .container p:after { background: #eee; position: absolute; } .container p:before { content: "..."; top: 39.2px; right: 0; } .container p:after { content: ""; height: 100%; width: 100%; }
なんとなく便利さが伝わりましたでしょうか?
@mixinやベンダープレフィックス、演算や条件分岐などを使ってからが本領発揮だと思いますが、私はこれだけで充分便利だなーと感じました。
セレクタを連ねて書く面倒さから解放されるのは大きいですね。
課題
デフォルトのままだとインデントが気に食わない。
→半角2つではなく、タブを使いたい。
config.rbの他の設定項目が気になる。
→試行錯誤中。
既存プロジェクトのcssどうしよう。
→未来を見据えて華麗にスルー?
やっぱりコード規約って大事。
→規約策定頑張るしかない。