About Sass

66
CSS拡張言語 Sassの基本と機能について Minoru Hayakawa 12112日金曜日

description

Slide for Sass

Transcript of About Sass

Page 1: About Sass

CSS拡張言語Sassの基本と機能について

Minoru Hayakawa

12年11月2日金曜日

Page 2: About Sass

アジェンダ• CSS拡張言語のメリットとデメリット• CSS拡張言語の種類• Sass,LESS,Stylusについて• Sassのインストール•開発にするにあたって• Sassの機能•まとめ

12年11月2日金曜日

Page 3: About Sass

CSS拡張言語を使うメリット

• メンテナンス性の向上- 冗長な記述の排除、再利用性のあるコードが書ける

• 開発効率向上- mixin,extend,関数,変数,ネスト

12年11月2日金曜日

Page 4: About Sass

• 独自記法の学習コスト• IE9のセレクタ数制限により陥りやすい(4095セレクタが制限)

• クライアント側でCSS修正がはいる場合は双方の確認が必要

CSS拡張言語を使うデメリット(注意点)

12年11月2日金曜日

Page 5: About Sass

CSS拡張言語の種類

Sass LESS Stylus

Ruby

RubyインストールSassインストール

JavaScript

JSライブラリ(クライアントサイド)LESSインストール(サーバーサイド)

Node.js

NodeインストールStylusインストール

12年11月2日金曜日

Page 6: About Sass

Why Sass?

12年11月2日金曜日

Page 7: About Sass

LESS• クライアントサイドかサーバーサイド- クライアントサイド- パフォーマンス的にどうなの?- JavaScript無効環境では使えない- サーバーサイド- LESSがインストールできるか確認する必要がある

12年11月2日金曜日

Page 8: About Sass

Stylus

ようわからん (`・ω・´)キリッ

SassとLESSと構文が異なるので、学習コストが高い(多分)

12年11月2日金曜日

Page 9: About Sass

Sass

• ローカルの開発環境だけでコンパイル可能

• Scss記法で学習コスト低減• Compass(Sassフレームワーク)

12年11月2日金曜日

Page 10: About Sass

Sass記法

Scss記法12年11月2日金曜日

Page 11: About Sass

SassとScssの記述例(変数)

Sass(.sass) Scss(.scss)

$color: #000000;

#header width: 100%; background: $color;

$color: #000000;

#header { width: 100%; background: $color; }

12年11月2日金曜日

Page 12: About Sass

SassとScssの記述例(ネスト)

Sass Scss

table border-space: 0; th text-align: left;

table { border-space: 0; th { text-align: left; } }

12年11月2日金曜日

Page 13: About Sass

なぜScss記法か

• Sass記法よりも可読性が良い• CSSの記述をそのままSassにできる• 段階的にSassの知識を伸ばしていける

12年11月2日金曜日

Page 14: About Sass

Sassのインストール

12年11月2日金曜日

Page 15: About Sass

• Rubyをインストール(Windowsのみ)• Sassのインストール- sudo gem install sass

12年11月2日金曜日

Page 16: About Sass

開発にあたって

12年11月2日金曜日

Page 17: About Sass

CSS

_symbol.scss

base.scss

style.scss

変数やmixinを定義

基本となるスタイル定義

基本となるスタイル定義

12年11月2日金曜日

Page 18: About Sass

_symbol.scssを用意する理由

• 変数やmixinの管理をしやすくするため• 変数などはscssの上部に記述する必要があるため、参照する度にファイル内で上下に行ったり来たりを避けるため

12年11月2日金曜日

Page 19: About Sass

_symbol.scssの読み込み

CSS

_symbol.scss

base.scss

style.scss

12年11月2日金曜日

Page 20: About Sass

•@importで読み込む

_symbol.scssの読み込み

12年11月2日金曜日

Page 21: About Sass

ScssからCSSにコンパイル

12年11月2日金曜日

Page 22: About Sass

開発ディレクトリに移動

cd /Applications/MAMP/htdocs/sass/css例:

12年11月2日金曜日

Page 23: About Sass

sass --watch style.scss:style.css

※ scssを更新する度に自動でcssファイルをアップデートしてくれるので、再度このコマンドを打つ必要はない

ストップするときは、control+C

12年11月2日金曜日

Page 24: About Sass

Sassの機能

12年11月2日金曜日

Page 25: About Sass

ネスト子孫セレクタを使う場合に用いる

12年11月2日金曜日

Page 26: About Sass

12年11月2日金曜日

Page 27: About Sass

scss

12年11月2日金曜日

Page 28: About Sass

css

12年11月2日金曜日

Page 29: About Sass

&キーワード

12年11月2日金曜日

Page 30: About Sass

12年11月2日金曜日

Page 31: About Sass

•親セレクタの参照&キーワード

12年11月2日金曜日

Page 32: About Sass

• CSSプロパティのネスト記法もある

おまけ

12年11月2日金曜日

Page 33: About Sass

変数

12年11月2日金曜日

Page 34: About Sass

_symbol.scss

style.scss

12年11月2日金曜日

Page 35: About Sass

Mixinプロパティやセレクタの再利用を可能とする機能

12年11月2日金曜日

Page 36: About Sass

_symbol.scss

style.scss

@mixinで定義

@includeで指定

12年11月2日金曜日

Page 37: About Sass

_symbol.scss

style.scss

引数を与える

使う場面で引数に値を指定

style.css

12年11月2日金曜日

Page 38: About Sass

clearfix

_symbol.scss

style.scss

12年11月2日金曜日

Page 39: About Sass

style.css

clearfix

12年11月2日金曜日

Page 40: About Sass

ベンダープレフィックス

12年11月2日金曜日

Page 41: About Sass

style.scss

style.css

12年11月2日金曜日

Page 42: About Sass

Extendあるスタイルを定義したセレクタを継承させる機能

12年11月2日金曜日

Page 43: About Sass

style.scss

style.css

@extendを用いる

12年11月2日金曜日

Page 44: About Sass

Extendの注意点

12年11月2日金曜日

Page 45: About Sass

12年11月2日金曜日

Page 46: About Sass

セレクタまで継承されるので、意図しないスタイルがあてられる可能性がある

12年11月2日金曜日

Page 47: About Sass

プレースホルダーセレクタSass3.2より追加された機能

12年11月2日金曜日

Page 48: About Sass

%で指定。CSSには表示されない

12年11月2日金曜日

Page 49: About Sass

style.scss

12年11月2日金曜日

Page 50: About Sass

12年11月2日金曜日

Page 51: About Sass

Extendをまとめると

12年11月2日金曜日

Page 52: About Sass

• @extendを用いる場合、セレクタのルールを決める

- プレースホルダーセレクタを用いる- 但し、mixinと差別化をどう図るかが必要

12年11月2日金曜日

Page 53: About Sass

関数

12年11月2日金曜日

Page 54: About Sass

• percentage()style.scss

style.css

数値(px)を%に変換

12年11月2日金曜日

Page 55: About Sass

• floor() 小数点を切り捨て

style.scss

style.css

関連:round(),ceil()

12年11月2日金曜日

Page 56: About Sass

• abs() --- 絶対値を取得• quote() --- クォートする• unquote() --- クォートを取り除く• red(), green(), blue() --- RGB形式から値を抜き出す

• alpha(),opacity() --- 透明度を取得• hue(),saturation(),lightness() --- HSL形式から値を抜き出す

12年11月2日金曜日

Page 57: About Sass

• rgb() --- RGB形式に変換• hsl() --- HSL形式に変換• rgba() --- RGBA形式に変換• hsla() --- HSLA形式をRGBA形式に変換• transparentize() --- より透明• opacify() --- より不透明にする• darken() --- 輝度を下げる

12年11月2日金曜日

Page 58: About Sass

• desaturate() --- 輝度を上げる• grayscale() --- グレースケールにする• complement() --- 補色にする• invert() --- 反転色にする• mix() --- 2色の中間色を取得する• type-of() --- 値の型を取得• unit() --- 値の単位を取得

more......

12年11月2日金曜日

Page 59: About Sass

@importでCSSファイルを一つにする

最後に..........

12年11月2日金曜日

Page 60: About Sass

reset.css

base.css

font.css

CSSの@importルールはパフォーマンスの意味合いで最近は使われない、またパフォーマンスの件でも複数のCSSを指定しない傾向にある

style.css

12年11月2日金曜日

Page 61: About Sass

reset.scss

base.scss

font.scss

style.scss

Sassの@importで複数のscssをひとつのCSSとしてコンパイルさせる。複数で開発する場合は、非常に有効。

12年11月2日金曜日

Page 62: About Sass

style.scss

12年11月2日金曜日

Page 63: About Sass

style.css

12年11月2日金曜日

Page 64: About Sass

まとめ

12年11月2日金曜日

Page 65: About Sass

• Sassの場合は、Scss記法のことを指すことがほとんど

• CSSの問題を軽減し、開発効率があがる• Sassの機能をすべて理解する必要はないが・・・・

- MixinやExtendを使ってコードの再利用性を高め、メンテナンス性を上げる

- SassのフレームワークのCompassを使うことにより、より開発効率があがる

12年11月2日金曜日

Page 66: About Sass

おしまい

12年11月2日金曜日