Webサイトを製作する上で、HTMLやCSSが必要になり、欠かすことのできない言語です。
しかし、HTMLやCSSを記述する量が多く、手間がかかることが問題でした。
そのような問題を解決できるのが、メタ言語です。
メタ言語は作業の効率化だけでなく、他にもたくさんのメリットがあります。
本記事では、メタ言語であるJadeとSassの使い方を紹介します。
実際に、Web製作の現場でもこの2つの言語は、頻繁に使われており、コーディングの時間を大幅に短縮できるため、この機会に覚えておきましょう。
初心者の方も最後までお読みいただければ、2つのメタ言語をマスターすることができます。
メタ言語とは
メタ言語とは、HTMLやCSSなど特定の言語を作成するための言語です。
この言語を使用することで、記述するコードの量を減らすことができ、冗長化を防ぐことができます。
メリットはこれだけではなく、HTMLファイルの分割など、役に立つ便利な機能を補完できます。
現在は、メタ言語を採用している企業が多く、この言語をマスターすることで、就職や転職の際にスキルとしてアピールできます。
今回、紹介するメタ言語は、JadeとSassですが、他にもメタ言語は存在しており、HTMLであれば、Slim、Hamlなどが挙げられ、CSSの場合は、Lessなどがあります。
Jadeとは
Jadeを簡単に説明すると、HTMLを簡単かつ効率的に記述できるマークアップ言語です。
Sassとは
Sassとは、CSSの記述量を減らしたマークアップ言語になります。
動作環境を整える
JadeとSassを使用するためには、それぞれの動作環境を設定する必要があります。
まずは、JadeとSassのセットアップについて説明します。
Jadeをインストールする手順
Jadeを利用するために必要な手順は以下の2つです。
・STEP1:Node.jsをインストール
・STEP2:Jadeをインストール
STEP1:Node.jsをインストール
JadeはNode.jsで動いているので、Node.jsをインストールする必要があります。
公式サイトにアクセスして、ボタン1つでダウンロードできます。
Jade公式サイトURL:https://nodejs.org/en/download/
STEP2:Jadeをインストール
Node.jsのインストールが完了した次は、コマンドを入力します。
Windowsの方はコマンドプロンプト、Macの方はターミナルを開きます。
インストールするためのコマンドは、以下のようになります。
npm install -g jade
このコマンドを入力して、このようなメッセージが表示されていれば、準備完了です。
jade –version
Sassをインストールする手順
Sassのインストール手順はWindowsとMacによって違うので、それぞれのやり方を紹介します。
Windowsの場合
Sassを利用するためのスッテプは以下のようになっています。
・STEP1:Rubyをインストール
・STEP2:Sassをインストール
STEP1:Rubyをインストール
Sassを利用するためには、Rubyをインストールする必要があります。
Rubyの公式サイトにアクセスして、ダウンロードします。
Ruby公式サイトURL:https://rubyinstaller.org/
ダウンロードが完了した次は、「RubyInstaller」を立ち上げます。
新たにウィンドウが開かれるので、「実行」ボタンをクリック。
次に、セットアップの画面が開かれるので、以下の項目にチェックを入れます。
・ruby の実行ファイルへ環境変数 PATH を設定する
・.rb と.rbw ファイルを Ruby に関連づける
上記の2つの項目にチェックが入っていることを確認した後に、「インストール」ボタンをクリック。
以上でRubyのインストール作業は完了です。
正しくインストールされていることを確認するために、コマンドプロンプトを開いて以下のコマンドを入力します。
ruby -v
このようにインストールしたバージョンが表示されていれば、問題ありません。
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-darwin14]
引き続き、Sassのインストールをするので、コマンドプロンプトを開いた状態にしてください。
STEP2:Sassをインストール
コマンドプロンプトに以下のコマンドを入力します。
gem install sass
Sassのインストールはこれで終わりです。
インストールが完了するまで、しばらく時間がかかります。
念のために正しくインストールされているかを確認するため、以下のコマンドを入力します。
sass -v
下のようにバージョンが正しく、表示されていれば、正しくインストールされています。
Sass 3.5.3
Macの場合
Macの場合、Rubyがデフォルトで搭載されているため、Rubyのインストール作業は必要ありません。
なので、Sassをインストールするだけになります。
Sassのインストール
手順はWindowsのインストール方法とほとんど同じです。
Sassをインストールするため、ターミナルに以下のコマンドを入力します。
gem install sass
パスワードを聞かれるので、OSのパスワードを入力します。
(注意:パスワードは入力しても表示されません。)
ダウンロードが開始すると以下のように表示されます。
Fetching: ffi-1.9.18.gem ( 1%)^R
Fetching: ffi-1.9.18.gem (100%)
Building native extensions. This could take a while…
Successfully installed ffi-1.9.18
Fetching: rb-inotify-0.9.10.gem (100%)
Successfully installed rb-inotify-0.9.10
Fetching: rb-fsevent-0.10.2.gem (100%)
Successfully installed rb-fsevent-0.10.2
Fetching: sass-listen-4.0.0.gem (100%)
Successfully installed sass-listen-4.0.0
Fetching: sass-3.5.3.gem (100%)
Successfully installed sass-3.5.3
Parsing documentation for ffi-1.9.18
Installing ri documentation for ffi-1.9.18
インストールができているか確認するため、以下のコマンドを入力します。
sass -v
Sassのバージョンが表示されていれば、インストール作業は完了です。
Jadeの記法
実際に記述する前に、基本的な書き方を覚える必要があります。
まずは、基本的な記法を説明します。
閉じタグは不必要
Jadeを使ってコーディングする場合は、閉じタグは必要ありません。
Jade
p サンプルです。
HTML
<p>サンプルです。</p>
Jade
h2 サンプルです。
HTML
<h2>サンプルです。</h2>
入れ子を作る
半角スペースかタブを使って、インデント構造を表します。
インデントを表すために、半角スペースとタブの両方を使用するとエラーになるので、注意してください。
Jade
ul li テストです。 li テストです。 li テストです。 li テストです。 li テストです。 li テストです。
HTML
<ul> <li>テストです。</li> <li>テストです。</li> <li>テストです。</li> <li>テストです。</li> <li>テストです。</li> <li>テストです。</li> </ul>
Jade
body h2 サンプルです。
HTML
<body> <h2>サンプルです。</h2> </body>
複数行記述する方法
複数行記述するには、「|」を使用します。
Jade
p |テストです。 |テストです。 |テストです。 |テストです。 |テストです。 |テストです。
HTML
<p> テストです。 テストです。 テストです。 テストです。 テストです。 テストです。 </p>
Jade
p |テストです。 br |テストです。 br |テストです。 br |テストです。 br |テストです。 br |テストです。
HTML
<p> テストです。<br> テストです。<br> テストです。<br> テストです。<br> テストです。<br> テストです。<br> </p>
id・classをつける
divを省略して記述することができ、タグにidやclassをつける場合は、以下のように記述します。
・#id名
・.class名
Jade
#article h2#headline タイトル p.content 文章 h3#sample.test 小見出し
HTML
<div id="article"> <h2 id="headline">タイトル</h2> <p calss="content">文章</p> <h3 id="sample class="test">小見出し</h3> </div>
属性の記述
属性は「()カッコ」の中に記述します。
Jade
a(href="https://google.com" target="blank") Google.com img(src="./sample.png")
HTML
<a href="//google.com/" target="_blank">Google.com</a> <img src="./sample.png">
コメント記述
コメントは、「//」を使って記述します。
Jade
// この部分はコメントです。 // この部分はコメントです。 この部分はコメントです。 この部分はコメントです。 この部分はコメントです。
HTML
<!-- この部分はコメントです。--> <!-- この部分はコメントです。 この部分はコメントです。 この部分はコメントです。 この部分はコメントです。 -->
CSS・JavaScriptの記述
Jade内にCSS、JavaScriptを記述する場合は、以下のようになります。
Jade
style. .sample { font-size: 20px; font-weight: bold; color: red; } script. (function() { console.log("hello, World"); })();
HTML
<style> .sample { font-size: 20px; font-weight: bold; color: red; } </style> <script> (function() { console.log("hello, World"); })(); </script>
include機能
Jadeではinclude機能が搭載されており、使用することでファイルを読み込むことができます。
ページの共通部分である「header」と「footer」をinclude使って読み込むようにします。
doctype html(lang="ja") head meta(charset="utf-8") style(src="css/style.css") title テスト body header.header h1.title サイトタイトル nav ul li a(href="#") ホーム li a(href="#") サービス li a(href="#") サイト紹介 li a(href="#") お問い合わせ main.main h2.content ページタイトル p ページコンテンツ footer.footer フッターです。
includeを使用した例
doctype html(lang="ja") head meta(charset="utf-8") style(src="css/style.css") title テスト body include include/header.jade main.main h2.content ページタイトル p ページコンテンツ include include/footer.jade
header部分
header.header h1.title サイトタイトル nav ul li a(href="#") ホーム li a(href="#") サービス li a(href="#") サイト紹介 li a(href="#") お問い合わせ
footer部分
footer.footer フッターです。
each機能
each機能を使用することで、リストタグなどを簡単に使うことができます。
ul each val in [ホーム, サービス, サイト紹介, お問い合わせ] li= val
<ul> <li>ホーム</li> <li>サービス</li> <li>サイト紹介</li> <li>お問い合わせ</li> </ul>
Sassの記法
Sassの基本的な記法を紹介します。
ネスト(入れ子)
Jadeと同じく、Sassも入れ子形式で記述できます。
この記述を使用するだけで、記述量を減らせることがメリットです。
Sass
#header { width: 940px; h1 { float: left; margin: 10px; } ul#gnav { height: 50px; list-style:none; li { float: left; a { float: left; text-decoration: none; } } } }
CSS
#header { width: 940px; } #header h1 { float: left; margin: 10px; } #header ul#gnav { height: 50px; list-style:none; } #header ul#gnav li { float: left; } #header ul#gnav li a { float: left; text-decoration: none; }
「&」で親セレクタ参照
「&」をセレクタに指定することで、親セレクタを参照することが可能です。
Sass
a { font-size: 20px; font-weight: bold; &:link{ color: blue; } &:hover { color: red; } &:visited { color: orange; } }
CSS
a { font-size: 20px; font-weight: bold; ] a:link{ color: blue; } a:hover { color: red; } a:visited { color: orange; }
コメント記述
CSSでコメントを記述する場合は、「/**/」を使いますが、Sassの場合は、「//」を使ってコメントを記述します。
Sass
//コメントです。
変数
文頭に「$」をつけることで、変数をつくることができます。
何度も使用する値を変数に設定しておくことで、まとめて変更できることがメリットです。
Sass
$haba: 50px; $moji: 16px; $back_gray: #999999; $margin_center:0 auto; .sample{ width: $haba; font-size: $moji; background: $back_gray; margin: $margin_center; }
CSS
.sample{ width: 50px; font-size: 16px; background: #999999; margin: 0 auto; }
演算
Sassでは、「掛ける」、「割る」、「足す」、「引く」の演算ができます。
演算を使用することで、計算する手間を省くことができます。
Sass
$moji: 16px; .sample{ width: 960px - 100px; padding: 10px / 2; font-size: $moji * 2; }
CSS
.sample{ width: 860px; padding: 5px; font-size: 32px; }
@mixinの使い方
「@mixin」を設定することで、インクルードを使って何度も呼び出すことができます。
コーディングにかける時間を短縮することができるので、オススメです。
Sass
@mixin sample{ width: 50px; margin: 10px; } .test{ @mixin sample; background-color: #FF0000; }
CSS
.test{ width: 50px; margin: 10px; background-color: #FF0000; }
@extendの使い方
エクステンドは、セレクタをそのまま適用させることができます。
ミックスインと似ている機能になり、コードの記述量を減らせることがメリットです。
Sass
.sample{ background-color: #FF0000; color: #000000; width: 100px; line-height: 1.8; } .testA{ @extend .sample margin-left: 10px; } .testB{ @extend .sample margin-right: 10px; }
CSS
.sample, .testA, .testB{ background-color: #FF0000; color: #000000; width: 100px; line-height: 1.8; } .testA{ margin-left: 10px; } .testB{ margin-right: 10px; }
@eachの使い方
「@each」を使うことで、簡単に複数のセレクタやプロパティを設定できます。
Sass
$sample-color: ( 'sampleA': #000000, 'sampleB': #808080, 'sampleC': #C0C0C0, 'sampleD': #FFFFFF, 'sampleE': #0000FF, 'sampleF': #000080, 'sampleG': #008080 ); @each $sample, $color in $sample-color { .#{$sample}{ background-color: $color; } }
CSS
.pageA{ background-color: #000000; } .pageB{ background-color: #808080; } .pageC{ background-color: #C0C0C0; } .pageD{ background-color: #FFFFFF; } .pageE{ background-color: #0000FF; } .pageF{ background-color: #000080; } .pageG{ background-color: #008080; }
@forの使い方
「@for」パターン化されているスタイルを量産できます。
Sass
@for $i from 10 through 20 { .moji#{$i} { font-size:#{$i}px; } }
CSS
.moji10 { font-size: 10px; } .moji11 { font-size: 11px; } .moji12 { font-size: 12px; } .moji13 { font-size: 13px; } .moji14 { font-size: 14px; } .moji15 { font-size: 15px; } .moji16 { font-size: 16px; } .moji17 { font-size: 17px; } .moji18 { font-size: 18px; } .moji19 { font-size: 19px; } .moji20 { font-size: 20px; }
まとめ
今回は、JadeとSassのインストールから基本的な使い方を紹介しました。
両方とも使用するためには、環境を整える必要がありますが、パソコン操作に慣れている方であれば、それほど時間はかかりません。
HTMLとCSSだけでもWebサイトを製作することはできますが、JadeやSassを使用することで、作業時間を大幅に短縮できます。
HTMLとCSSを問題なく使える方は、すぐに習得できることも大きなメリットです。
生産性を高めたいと考えている方は、JadeとSassを使用してみてはいかがでしょうか。