2016/11/04
CSSがもっと効率的に書ける!LESSの使用方法について。
みなさん、LESSという言葉を聞いたことはありますか?
LESS(Leaner CSS)は、Alexis Sellierが設計した動的スタイルシート言語です。
LESSはCSSの拡張メタ言語で、LESSで書いたファイルをコンパイルするとCSSが生成されるという仕組みです。
今回はLESSを使用するにあたり、基本的な導入方法と書き方の例を紹介します。
目次
LESSのメリット・デメリット
メリット
- 頻繁に使うプロパティを設定できる
- ベンダープレフィックス(先頭に付ける-moz-や-webkit-)を一々書かなくて済む
デメリット
- コンパイルする必要がある
- CSS初心者向けではない(既にCSSに慣れ親しんでいる方には使い勝手が良い)
LESSを動かすには?
- サーバー側(node.js、Rhino)でコンパイルしたCSSを読み込む
- コンパイルできるツールやサービスを使用し、変換してCSSとして読み込む
- JavaScriptを読み込み、クライアントサイドでCSSに変換する
3つの方法を挙げましたが、3番目が主流となっています。こちらの方法でLESSを動かすようにしましょう。
まずは、LESSの公式サイトhttp://less-ja.studiomohawk.com/にあるless.jsをダウンロードし、HTMLに埋め込みましょう。
<link rel="stylesheet/less" type="text/css" href="style.less"> <script src="less.js" type="text/javascript"></script>
これで、style.lessに書いたLESSが動くようになります。では次にLESSの書き方を見てみましょう。
LESSでできる事
- 変数の利用が可能(Variables)
- セレクタの入れ子が可能(Nested rules)
- 関数の利用(Mixins)
- 演算(Operations)
上記4つが挙げられます。では、この4つの書き方を一つずつLESSとCSSで比較して見てみましょう。
変数を使用した書き方
LEES:
@color: #000000;
.content{
color: @color;
}
#wrppaer{
backgeround-color: @color;
}
CSS:
.content{
color: #000000;
}
#wrppaer{
backgeround-color: #000000;
}
変数は「@~~」で表すことが出来ます。LESSにおける変数の定義は一度のみです。
CSSを書いていると何回も同じコードを書くことがありますが、変更をかける時にいくつもの修正が入ることになります。
かといって一括置換も怖いですよね。変数を使用できるLESSを使う事で、このような不安点も解消できそうです。
Mixin(関数)の書き方
LESS:
.rounded-corners(@radius: 5px) {
border-radius: @radius;
-webkit-border-radius: @radius;
-moz-border-radius: @radius;
}
.container {
.rounded-corners;
}
CSS:
.rounded-corners(@radius: 5px) {
border-radius: @radius;
-webkit-border-radius: @radius;
-moz-border-radius: @radius;
}
.container {
border-radius: 5px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
}
あらかじめ宣言しておいたプロパティを呼び出すことが出来ます。
共通化しているコードやプレフィックスがつくようなコードをまとめておく事が出来るので、何回も同じコードを書くことが無く、コーディングの効率化になります。
また例にあるように変数で定義してあげればpxだけ違うようなものにも対応出来るのでとても便利です。
ネスト(入れ子構造)の書き方
LESS:
.container {
border: solid 2px #eee;
box-shadow: 0px 2px 2px rgba(0,0,0,0.7);
.inner {
margin: 0 auto;
padding: 5px;
}
.logo {
float: left;
height: 55px;
}
}
CSS:
.container {
border: solid 2px #eee;
box-shadow: 0px 2px 2px rgba(0,0,0,0.7);
}
.container .inner {
margin: 0 auto;
padding: 5px;
}
.container .logo {
float: left;
height: 55px;
}
入れ子にして書けることで、ID名やクラス名(上記の中では、クラス名.containerにあたります)を省略できるので、CSSファイルのボリュームを圧縮することができます。
計算式の書き方
@color: #111;
@pad: 10px;
.container {
padding: @pad + 20;
}
header {
color: @color * 6;
}
CSS:
.container {
padding: 30px;
}
header {
color: #666;
}
関数を使用して、計算式を入れることができます。
文字サイズの比率を保ったまま、余白やmarginを変更するなどに使えます。
その他
コメント
cssでの「/*~~~*/」のコメントの他に、行頭に「//」を付けたものでのコメントも可能です。
まとめ
初めはLESSの書き方を覚えるのが難しい部分もありますが、この書き方ができるようになる事で今まで長く書いていたCSSを短縮することが出来ます。
ファイルの圧縮に繋がりますし、変更をする時などに重宝できます。是非、LESSの書き方を試してみて下さい。
コーディング業務のご依頼、ご相談の詳細についてはこちらから
最後までお読みいただき、ありがとうございました。
よろしければシェアしていただければ幸いです。
| 次の記事へ | 前の記事へ |
WEB業界ならqam!qam(カム)はWEB業界で働く人や興味がある人に役立つ情報サイトです。
マーケティングやデザイン、マークアップ(コーディング)、プログラム、トレンドなどの情報をqamライター陣が執筆。噛めば噛むほど(読めば読むほど)制作・開発や運営・運用、業界知識やノウハウを学ぶことができます。




