WEBデザイン・プログラミング関連の
情報発信を手掛ける STAND4U

HOME > css > sass > Sassで何ができるの?Sassのメリットとは?

Sassで何ができるの?Sassのメリットとは?

[景品表示法に基づく表記] 本コンテンツにはプロモーションが含まれています。

CSSは使えるけど、そろそろSassの勉強をしないと。。Sassってなんとなくしかわからないから、実際Sassで何ができるのか知りたい

Sassは難しい印象があるから、熟練した人でも敬遠して使わない人も結構多い。ただし、一旦使い始めると、その便利さから使わずにはいられなくなる人もおおいのだ。

そこで今回は、Sassを始める前に「Sassとはなにか?」「どんな便利な機能があるのか」を学んでいこう!

Sassとは?

まずは「Sassとはなにか?」を説明しよう!

Sassとは「Syntactically Awesome Stylesheets」の略であり「構文的にいい感じのスタイルシート」的な意味で、「CSSに機能を拡張」した言語と言える。

簡単に言うとSassとは「CSSをもっと便利な機能を足した言語」と言えばいいだろう。

ただし、Sassファイルはそのままでは使えないので、Sassを記述し終わったら、通常のCSSの形式にコンパイル(変換)する必要がある。

このコンパイルは自動的に変換できるツールがあるので、手作業でやるわけではない。

Sassには2つの記法がある?

そうSassには、拡張子が「.sass」「.scss」の2つ記法があるんだ。

最初に作られた「sass記法」は、記述をシンプルにするため従来のCSSの記法を省略した形式の記法だったために「従来のCSSと書き方が違う」という理由であまり普及しなかったのだ。

そこで後から作られたのが「scss記法」。CSSと互換性があるため、CSSと同じ書式で書いても問題ない。

このような理由などから現在では、SCSS記法が主流となっているので、今回の記事では「SCSS記法」について学んでいこう。

SCSS記法

通常のCSSの記述をしながらも、一部入れ子にできたり、新たな機能が使えるようになった記法だ。

ul{
     margin: 50px 0;
      li{
         list-style: none;
     }
}

SASS記法

これが当初に生まれた記法で、普通のCSSから「{}」や「;」などを省略した形で記述されている。しかし、CSSの記述と互換性が無い為、あまり人気が無かった。

投稿一覧ul
     margin: 50px 0
     li
        list-style: none

Sassって面倒?黒い画面を使わないとできない?

Sassは使い始めるまでは、面倒な印象があるが、ちょっと面倒なのは最初だけ。特に、黒い画面(MacのターミナルやWindowsのコマンドプロンプト)を使わないとできない思われがちだが、実際は最初のインストール時とアップデートの時などだけであり、さらに!GUIツールを使えば、黒い画面を一切使わずにSassを利用することもできるんだ。

一番ハードルが高いと感じられる最初のSASSの環境構築を丁寧に解説した記事はこちら。最近最も人気のGulpを使った環境構築なので、早速参考にしてやってみよう!

もちろんRubyなどの知識も不要で「CSSが書ける人ならすぐに使えるようになる」ので、最初のインストール時だけ乗り越えれば、全く問題ない!

もっと簡単に、ターミナル(コマンド)を一切使わずに、簡単にSassを始めたいという人には、簡単で人気のGUIコンパイラー「Prepros」がおすすめ。Preprosの使い方や機能が知りたい方はこちらの記事を

また、Sassはたくさんの便利な機能があるが、すべてを使いこなす必要もない。まずは、簡単な入れ子や変数の使い方をマスターするだけでも、便利に使えるので、簡単な機能から使っていこう!

Sassの便利な機能:メリット

それでは、便利なSassの機能やメリットを順番に確認していこう!

親子関係のセレクタを入れ子にしてまとめて書ける

通常CSSは、親要素と子要素がある構造の場合、その都度、親要素と子要素の関係を記述する必要がある。

しかし、Sassを利用すると、親要素を記述したら、その中に子要素を入れ子(ネスト)にすることで、まとめて書くことができる。具体的には次のようなコードになる。

通常のCSSコード

この場合ul.navを3回書くことになる

ul.nav{
     margin: 50px 0;
}
ul.nav li{
     list-style: none;
}
ul.nav li span{
     color: red;
}

Sassのコード

Sassの場合はul.navを1度書くだけで済む

ul.nav{
     margin: 50px 0;
     li{
         list-style: none;
         span{
              color: red;
         }
     }
}  

入れ子(ネスト)にできるメリットは、単純にCSSのソースコードが短くなるだけではなく「エリア毎にソースを書く習慣ができるので」ソースが整理され、可読性も良くなるのもメリットの1つだろう。

Sassのネスト機能で使える「&:アンパサンド(アンド)」

上記のネスト機能をさらに便利に使いこなせるようになるアイテムとして、「&:アンパサンド(アンド)」がある。

基本的には「親セレクタを参照」できる機能なのだが、そんな「&:アンパサンド(アンド)」について、詳しく書いたこちらの記事を参考にしてみよう。

変数を使って共通の値を使い回せる

例えば、WEBサイト内で「共通の色」を使う場合、通常のCSSではその都度「色指定」をする必要がある。

しかしSassの場合「変数」を使うことで、「共通の値を変数」として指定することができるのだ。

この「変数」の何が良いかと言うと、例えば「変数」を使った共通の色に対して、色を変えてほしいという修正指示があった場合、変数の元の色を1箇所修正するだけで、変数を指定した「全ての箇所を一気に変更」できるというメリットがあるのだ。

変数の基本ルールや使い方はこちらの記事を参考にしよう。

エクステンド(@extend)機能で、1度使ったスタイルを使い回せる

エクステンド機能とは、1度セレクタに対して記述したスタイルを、「別のセレクタにも同じスタイルを」簡単に適用できるというものだ。

使い方としては、まず通常通りセレクタ:スタイル;の形で指定した上で、同じスタイルを付けたい「別のセレクタ」に対して、スタイルの指定の代わりに@extend セレクタ;の形で指定するのだ。

具体的な例としては、次のようなコードになる。

SASSファイル

.box{
    padding:20px;
     border:1px solid #f90;
  }

// .boxのスタイルをエクステンド
.box2{
     margin: 30px 0;
     @extend .box;
}

コンパイル後のCSS

.box, .box2{
    padding:20px;
     border:1px solid #f90;
 }
.box2{
     margin: 30px 0;
}

これで.box2.boxと同じスタイルがついた上で、marginだけ追加する事ができるのだ。

ミックスイン(@mixin)機能で、コードをモジュール化して再利用できる

「ミックスイン(@mixin)」とは、前述した「エクステンド(@extend)」と似ているが、さらに便利に使うことができる。

ミックスインでは、使い回すスタイルのセットを作成した上で「引数」と言われる変数のようなものを指定する事ができ、実際に使う時には、引き渡す数字を「その時々で、任意の数字に変えて」利用する事ができるのだ。

ミックスイン丁寧に解説した記事があるので、こちらを参考にしてほしい

また、「ミックスイン(@mixin)」と「エクステンド(@extend)」と違いと、その使い分けについて詳しく知りたい方はこちらの記事を是非みておこう!

複数のSASSファイルを1つのCSSファイルにまとめることができる

sassファイルは、更新性を良くするために、エリアごとにsassファイルを作ったり、機能毎にsassファイルを作って、書き出す時にまとめることが可能。

sassを使うメリットは、便利な機能だけなく、メンテナンス性の向上も大きなメリットでもあるのだ!

if文の条件分岐の処理ができる

Sassでは、もし○○ならば「A」そうでなければ「B」といった具合に、条件をつけてその結果でスタイルを振り分ける使い方も可能だ。

これをプログラミングの世界では「条件分岐」と呼び、この条件分岐はプログラミングでは無くてはならない機能なのだ。

Sassの条件分岐について、その使い方と、どんな時に使うかを確認したい方は、こちらの記事を参考にしておこう!

@for、@while、@eachなどの反復処理(ループ処理)ができる

Sassでは、if文の他にも「@for、@while、@each」のようなプログラミング言語で良く使う「反復処理(ループ処理)」と言われる繰り返し処理を使う事ができる。

「反復処理」とは、同じような処理を「繰り返し」行う事で、様々な用途や応用方法として使う事ができる。

Sassで使える「@for、@while、@each」の3つのループ処理について詳しく解説した記事はこちら

関数が使えるようになる

Sassでは便利な関数が用意されている。関数とはあらかじめ作られた「命令文」のようなもので、例えば「小数点以下を四捨五入する『関数 round()』」や、「16進数のカラーコードを10進数のRGB値に変換して、透明度を指定するrgba()」などなど。

フロントエンドスキルをもっと早く・簡単にマスターしたい方へ!

JavaScriptやCSS・Sassなどフロントエンド学習は、初心者が「独学」で完全マスターするには半年以上かかり、相当根気よくやらないと挫折してしまうか、ライバルに出遅れてしまう…。

短期間でフロントエンド・WEBデザインをマスターするには?

私の経験だが、手軽なオンラインスクールを利用した方が圧倒的に早かった。独学だと「何からどこまで勉強すれば良いかわからない」ものを、これだけ学習すればOKというポイントをおさえた教科書で学習しながら、わからない点を質問し放題なので、多少の出費は必要だが2ヶ月程度でサクッと学べたので逆に経済的だった!(実際に私がオンラインスクールを受講して体感

では「オススメはどのスクール?」とよく聞かれるのだが、たった1つのおすすめスクールがある訳でなく、その人によって最適なスクールが違う

スクール選びのポイント
  • 学習スタイルが自分に合っているか?
  • 低価格でコスパの良い学習料金か?
  • 講師に質問しやすい環境か?
  • 無料体験できるスクールか?

数あるスクールの中から、実際に受講してわかった事や現役プロならでは目線で厳選・比較したこちらの記事「現役プロ比較!短期 「WEBデザインスクール12校」おすすめランキング!」を参考に自分に合ったスクールを探そう↓

まとめ

これまでピックアップしてきた、Sassの特徴やメリットはまだまだほんの一部だ。

Sassはある程度学習コストがかかるが、全部の機能を覚える必要はなく、まずは自分が知っている機能だけ使えばいいのだ!

そして、必要に応じて新しい機能を学んで使っていくというスタイルでも良いのではないだろうか。まずは「習うより慣れろ」という言葉のとおり、ネストの機能だけでも使って、練習してみるといいだろう!


※当記事の掲載内容は執筆現在の個人の見解・調査によるもので、動作・サービス等を保証するものではありません。最新情報は各公式サイトでご確認頂き、購入・契約・データ作成等はご自身の判断・責任でお願いします。 免責事項

関連記事

この記事を書いた人

編集長

WEBデザイン・グラフィックデザイン歴:約18年、HTMLコーディング、jquery、wordpress、イラストなど本業とし、WEBデザインコンサル・プログラミング・ライティング等にも勤しんでいます

プロフィールはこちら

Twitter @stand_4u_ をフォロー

新着記事