SlideShare une entreprise Scribd logo
1  sur  66
Télécharger pour lire hors ligne
CSS拡張言語
              Sassの基本と機能について




                               Minoru Hayakawa


12年11月2日金曜日
アジェンダ
              • CSS拡張言語のメリットとデメリット
              • CSS拡張言語の種類
              • Sass,LESS,Stylusについて
              • Sassのインストール
              • 開発にするにあたって
              • Sassの機能
              • まとめ
12年11月2日金曜日
CSS拡張言語を使うメリット

              •   メンテナンス性の向上

                  -   冗長な記述の排除、再利用性のあるコード
                      が書ける

              •   開発効率向上

                  -   mixin,extend,関数,変数,ネスト




12年11月2日金曜日
CSS拡張言語を使うデメリット
         (注意点)

              •   独自記法の学習コスト

              •   IE9のセレクタ数制限により陥りやすい
                  (4095セレクタが制限)

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



12年11月2日金曜日
CSS拡張言語の種類

              Sass       LESS           Stylus

              Ruby       JavaScript     Node.js

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




12年11月2日金曜日
Why Sass?

12年11月2日金曜日
LESS
       •      クライアントサイドかサーバーサイド

              - クライアントサイド
              -   パフォーマンス的にどうなの?

              -   JavaScript無効環境では使えない

              - サーバーサイド
              -   LESSがインストールできるか確認する必要がある



12年11月2日金曜日
Stylus


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

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



12年11月2日金曜日
Sass

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

              •   Scss記法で学習コスト低減

              •   Compass(Sassフレームワーク)




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

              Scss記法
12年11月2日金曜日
SassとScssの記述例(変数)

              Sass(.sass)           Scss(.scss)

        $color: #000000;       $color: #000000;


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



12年11月2日金曜日
SassとScssの記述例(ネスト)

                Sass                     Scss

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



12年11月2日金曜日
なぜScss記法か

              •   Sass記法よりも可読性が良い

              •   CSSの記述をそのままSassにできる

              •   段階的にSassの知識を伸ばしていける




12年11月2日金曜日
Sassのインストール



12年11月2日金曜日
•    Rubyをインストール(Windowsのみ)

    •    Sassのインストール

        - sudo gem install sass



12年11月2日金曜日
開発にあたって




12年11月2日金曜日
_symbol.scss
                     変数やmixinを定義


              CSS



                     base.scss
                     基本となるスタイル定義




                     style.scss
                      基本となるスタイル定義




12年11月2日金曜日
_symbol.scssを用意する理由


              •   変数やmixinの管理をしやすくするため

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




12年11月2日金曜日
_symbol.scssの読み込み
                        _symbol.scss



              CSS



                         base.scss




                         style.scss



12年11月2日金曜日
_symbol.scssの読み込み




              • @importで読み込む

12年11月2日金曜日
ScssからCSSにコンパイル




12年11月2日金曜日
開発ディレクトリに移動

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




12年11月2日金曜日
sass --watch style.scss:style.css
                                ※ scssを更新する度に自動でcssファイルをアップデー
                                トしてくれるので、再度このコマンドを打つ必要はない




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

12年11月2日金曜日
Sassの機能



12年11月2日金曜日
ネスト
              子孫セレクタを使う場合に用いる




12年11月2日金曜日
12年11月2日金曜日
scss




12年11月2日金曜日
css




12年11月2日金曜日
&キーワード



12年11月2日金曜日
12年11月2日金曜日
&キーワード
              • 親セレクタの参照




12年11月2日金曜日
おまけ


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




12年11月2日金曜日
変数




12年11月2日金曜日
_symbol.scss




                 style.scss

12年11月2日金曜日
Mixin
              プロパティやセレクタの再利用を可能とする機能




12年11月2日金曜日
_symbol.scss


              @mixinで定義



                               style.scss


              @includeで指定


12年11月2日金曜日
_symbol.scss


              引数を与える

                             style.scss

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

                                style.css


12年11月2日金曜日
clearfix
                        _symbol.scss




                          style.scss



12年11月2日金曜日
clearfix



                        style.css




12年11月2日金曜日
ベンダープレフィックス




12年11月2日金曜日
style.scss




              style.css




12年11月2日金曜日
Extend
              あるスタイルを定義したセレクタを継承させる機能




12年11月2日金曜日
style.scss




              @extendを用いる

                              style.css




12年11月2日金曜日
Extendの注意点




12年11月2日金曜日
12年11月2日金曜日
セレクタまで継承されるので、意図しないスタイル
          があてられる可能性がある




12年11月2日金曜日
プレースホルダーセレクタ
              Sass3.2より追加された機能




12年11月2日金曜日
%で指定。CSSには表示されない




12年11月2日金曜日
style.scss




12年11月2日金曜日
12年11月2日金曜日
Extendをまとめると



12年11月2日金曜日
•   @extendを用いる場合、セレクタのル
                  ールを決める

                  -   プレースホルダーセレクタを用いる

                      -   但し、mixinと差別化をどう図るかが必要




12年11月2日金曜日
関数



12年11月2日金曜日
•   percentage()   数値(px)を%に変換

                                        style.scss




                                        style.css




12年11月2日金曜日
• floor()   小数点を切り捨て


                                    style.scss




                                    style.css

               関連:round(),ceil()


12年11月2日金曜日
•   abs() --- 絶対値を取得

              •   quote() --- クォートする

              •   unquote() --- クォートを取り除く

              •   red(), green(), blue() --- RGB形式から値
                  を抜き出す

              •   alpha(),opacity() --- 透明度を取得

              •   hue(),saturation(),lightness() --- HSL形
                  式から値を抜き出す

12年11月2日金曜日
•   rgb() --- RGB形式に変換

              •   hsl() --- HSL形式に変換

              •   rgba() --- RGBA形式に変換

              •   hsla() --- HSLA形式をRGBA形式に変換

              •   transparentize() --- より透明

              •   opacify() --- より不透明にする

              •   darken() --- 輝度を下げる


12年11月2日金曜日
•   desaturate() --- 輝度を上げる

              •   grayscale() --- グレースケールにする

              •   complement() --- 補色にする

              •   invert() --- 反転色にする

              •   mix() --- 2色の中間色を取得する

              •   type-of() --- 値の型を取得

              •   unit() --- 値の単位を取得
                                            more......

12年11月2日金曜日
最後に..........




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




12年11月2日金曜日
reset.css




                          base.css


              style.css


                           font.css


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

12年11月2日金曜日
reset.scss




                              base.scss


              style.scss

                              font.scss




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

12年11月2日金曜日
style.scss




12年11月2日金曜日
style.css




12年11月2日金曜日
まとめ



12年11月2日金曜日
•   Sassの場合は、Scss記法のことを指すこ
                  とがほとんど

              •   CSSの問題を軽減し、開発効率があがる

              •   Sassの機能をすべて理解する必要はな
                  いが・・・・

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

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


12年11月2日金曜日
おしまい



12年11月2日金曜日

Contenu connexe

En vedette

Sass勉強会 - メジャーなCSS設計紹介とDocBaseのCSS
Sass勉強会 - メジャーなCSS設計紹介とDocBaseのCSSSass勉強会 - メジャーなCSS設計紹介とDocBaseのCSS
Sass勉強会 - メジャーなCSS設計紹介とDocBaseのCSSAsami Kamei
 
Sassをはじめからていねいに<概要−基礎編>
Sassをはじめからていねいに<概要−基礎編>Sassをはじめからていねいに<概要−基礎編>
Sassをはじめからていねいに<概要−基礎編>Horiguchi Seito
 
Sass/Compass よくあるトラブルと 解決方法・回避方法
Sass/Compass よくあるトラブルと 解決方法・回避方法Sass/Compass よくあるトラブルと 解決方法・回避方法
Sass/Compass よくあるトラブルと 解決方法・回避方法Maboroshi.inc
 
ヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティー
ヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティーヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティー
ヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティーYoshiki Hayama
 
メンテナブルでありつづけるためのCSS設計
メンテナブルでありつづけるためのCSS設計メンテナブルでありつづけるためのCSS設計
メンテナブルでありつづけるためのCSS設計拓樹 谷
 
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)Horiguchi Seito
 
2016年版 フロントエンド開発フォーマット
2016年版 フロントエンド開発フォーマット2016年版 フロントエンド開発フォーマット
2016年版 フロントエンド開発フォーマットKenya Kodaira
 
なんでCSSすぐ死んでしまうん
なんでCSSすぐ死んでしまうんなんでCSSすぐ死んでしまうん
なんでCSSすぐ死んでしまうんHayato Mizuno
 
大規模サイトにおける本当は怖いCSSの話
大規模サイトにおける本当は怖いCSSの話大規模サイトにおける本当は怖いCSSの話
大規模サイトにおける本当は怖いCSSの話井上 誠
 
ブラウザにやさしいHTML/CSS
ブラウザにやさしいHTML/CSSブラウザにやさしいHTML/CSS
ブラウザにやさしいHTML/CSSTakeharu Igari
 

En vedette (11)

Sass勉強会 - メジャーなCSS設計紹介とDocBaseのCSS
Sass勉強会 - メジャーなCSS設計紹介とDocBaseのCSSSass勉強会 - メジャーなCSS設計紹介とDocBaseのCSS
Sass勉強会 - メジャーなCSS設計紹介とDocBaseのCSS
 
Sassをはじめからていねいに<概要−基礎編>
Sassをはじめからていねいに<概要−基礎編>Sassをはじめからていねいに<概要−基礎編>
Sassをはじめからていねいに<概要−基礎編>
 
Sass/Compass よくあるトラブルと 解決方法・回避方法
Sass/Compass よくあるトラブルと 解決方法・回避方法Sass/Compass よくあるトラブルと 解決方法・回避方法
Sass/Compass よくあるトラブルと 解決方法・回避方法
 
ヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティー
ヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティーヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティー
ヒューマンリーダブルな CSS 記述法(異次元編):2016年5月13日 CodeGrid 四周年記念パーティー
 
メンテナブルでありつづけるためのCSS設計
メンテナブルでありつづけるためのCSS設計メンテナブルでありつづけるためのCSS設計
メンテナブルでありつづけるためのCSS設計
 
CSS の歩き方
CSS の歩き方CSS の歩き方
CSS の歩き方
 
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
 
2016年版 フロントエンド開発フォーマット
2016年版 フロントエンド開発フォーマット2016年版 フロントエンド開発フォーマット
2016年版 フロントエンド開発フォーマット
 
なんでCSSすぐ死んでしまうん
なんでCSSすぐ死んでしまうんなんでCSSすぐ死んでしまうん
なんでCSSすぐ死んでしまうん
 
大規模サイトにおける本当は怖いCSSの話
大規模サイトにおける本当は怖いCSSの話大規模サイトにおける本当は怖いCSSの話
大規模サイトにおける本当は怖いCSSの話
 
ブラウザにやさしいHTML/CSS
ブラウザにやさしいHTML/CSSブラウザにやさしいHTML/CSS
ブラウザにやさしいHTML/CSS
 

Similaire à About Sass

Sassについてゼロから解説 -基本の理解だけでも効率アップ-|第14回ゼロから始めるWordPress勉強会
Sassについてゼロから解説 -基本の理解だけでも効率アップ-|第14回ゼロから始めるWordPress勉強会Sassについてゼロから解説 -基本の理解だけでも効率アップ-|第14回ゼロから始めるWordPress勉強会
Sassについてゼロから解説 -基本の理解だけでも効率アップ-|第14回ゼロから始めるWordPress勉強会Yoshinori Kobayashi
 
NoSQLとビックデータ入門編Update版
NoSQLとビックデータ入門編Update版NoSQLとビックデータ入門編Update版
NoSQLとビックデータ入門編Update版Koichiro Nishijima
 
Htmlコーディングの効率化 後編
Htmlコーディングの効率化 後編Htmlコーディングの効率化 後編
Htmlコーディングの効率化 後編Yasuhito Yabe
 
compassで簡単! CSS3を手軽に利用する
compassで簡単!  CSS3を手軽に利用するcompassで簡単!  CSS3を手軽に利用する
compassで簡単! CSS3を手軽に利用するKazuya Hiruma
 
WebデザイナーのためのSass/Compass入門
WebデザイナーのためのSass/Compass入門WebデザイナーのためのSass/Compass入門
WebデザイナーのためのSass/Compass入門Koji Ishimoto
 
Sassを使った共同作業について
Sassを使った共同作業についてSassを使った共同作業について
Sassを使った共同作業についてKanako Urabe
 
イマドキのコーダー環境構築2016
イマドキのコーダー環境構築2016イマドキのコーダー環境構築2016
イマドキのコーダー環境構築2016Sou Lab
 
CSS拡張メタ言語 Sass が何者かを紹介する | SakanaTech
CSS拡張メタ言語 Sass が何者かを紹介する | SakanaTechCSS拡張メタ言語 Sass が何者かを紹介する | SakanaTech
CSS拡張メタ言語 Sass が何者かを紹介する | SakanaTechlyca chigyo
 
社会ネットワーク分析第7回
社会ネットワーク分析第7回社会ネットワーク分析第7回
社会ネットワーク分析第7回Satoru Mikami
 

Similaire à About Sass (11)

Sassについてゼロから解説 -基本の理解だけでも効率アップ-|第14回ゼロから始めるWordPress勉強会
Sassについてゼロから解説 -基本の理解だけでも効率アップ-|第14回ゼロから始めるWordPress勉強会Sassについてゼロから解説 -基本の理解だけでも効率アップ-|第14回ゼロから始めるWordPress勉強会
Sassについてゼロから解説 -基本の理解だけでも効率アップ-|第14回ゼロから始めるWordPress勉強会
 
NoSQLとビックデータ入門編Update版
NoSQLとビックデータ入門編Update版NoSQLとビックデータ入門編Update版
NoSQLとビックデータ入門編Update版
 
Htmlコーディングの効率化 後編
Htmlコーディングの効率化 後編Htmlコーディングの効率化 後編
Htmlコーディングの効率化 後編
 
compassで簡単! CSS3を手軽に利用する
compassで簡単!  CSS3を手軽に利用するcompassで簡単!  CSS3を手軽に利用する
compassで簡単! CSS3を手軽に利用する
 
Sass less
Sass lessSass less
Sass less
 
WebデザイナーのためのSass/Compass入門
WebデザイナーのためのSass/Compass入門WebデザイナーのためのSass/Compass入門
WebデザイナーのためのSass/Compass入門
 
Sassを使った共同作業について
Sassを使った共同作業についてSassを使った共同作業について
Sassを使った共同作業について
 
イマドキのコーダー環境構築2016
イマドキのコーダー環境構築2016イマドキのコーダー環境構築2016
イマドキのコーダー環境構築2016
 
CSS拡張メタ言語 Sass が何者かを紹介する | SakanaTech
CSS拡張メタ言語 Sass が何者かを紹介する | SakanaTechCSS拡張メタ言語 Sass が何者かを紹介する | SakanaTech
CSS拡張メタ言語 Sass が何者かを紹介する | SakanaTech
 
CSV
CSVCSV
CSV
 
社会ネットワーク分析第7回
社会ネットワーク分析第7回社会ネットワーク分析第7回
社会ネットワーク分析第7回
 

About Sass