1.LESSとは
LESSは英語で「少なく」といった意味です。CSSをシンプル(少なく)に効率よく書くためのもので、CSS拡張メタ言語の1つです。
では、CSS拡張メタ言語では何ができるのでしょうか?
- 変数
- ミックスイン
- 入れ子ルール
- 関数と演算
「あれ!? プログラミングみたいだね……?」そう!? そうなんです!! プログラミング的処理をCSSの記述に使用できるのです。プログラミングでいう「変数」や「関数」などが使用できるので、プログラミング的要素を取り入れて、効率的にCSSを記述することが可能になります。
2. LESSの特徴
- プログラミング的なコーディングでCSSを記述できる
- JavaScriptでシンプルなコードを記述することが可能
- JavaScriptで記述したコードをCSSファイルへ変換可能(※アプリケーションを使用)
- node.jsでのサーバーにインストールすれば利用も可能(※コマンドライン使用)
3. LESSを使う準備
では、さっそくLESSを使ってみましょう。
■less日本語サイトURL
http://less-ja.studiomohawk.com/
(本家英語サイトの方はバージョンが最新のようです)
■3.1.上記URLより「LESS」ライブラリをダウンロード。
■3.2.ダウンロードした「LESS」ライブラリを使いたいディレクトリに移動。
■3.3.index.html と同階層で使用している例が以下です。
■3.4.「 style.less 」 というCSSファイルを作成してください。これは、「style.css」と同様の意味になります。つまりは、「LESS」ライブラリを使用する場合にはCSSファイル拡張子を「.less」にする必要があるということです。
■3.5. index.html (lessライブラリを使うHTML)にはCSSと同じようにlinkタグから「.less」ファイルを呼び出す 「rel="stylesheet/less"」となる点に注意してください。
★記述イメージ
<link rel="stylesheet/less" type="text/css" href="style.less">
<script src="less-1.3.0.min.js" type="text/javascript"></script>
「style.less」を読み込んだ後に「less-1.3.0.min .js」を呼び出します。
※ style.lessにはLESS文法で書いたCSSを記述しています。
4.LESSを使ってみよう
■LESSを使用した場合
例)@変数名:値;
@color : #ffffff;
@bgcolor: #000000;
color: @color;
background-color: @bgcolor;
}
#footer {
color: @color;
background-color: @bgcolor;
}
color: #ffffff;
bgcolor: #000000;
}
# footer {
color: #ffffff;
bgcolor: #000000;
}
「変数は1つの値」だけを保持するのに対し、ミックスインはCSSでいう "class","id"のCSS定義したブロック内を全て保持できます。つまり端的な例でいえば、CSSファイル内に"mainクラス"が定義されているとして、"mainクラス内全てのプロパティと値"を保持できます。プログラミングでいえば、関数のようなもので、他のブロック(クラス)へ埋め込め(関数を呼び出す)ます。 またミックスインは、下記の例のように、関数と同じく引数(初期値)を設定できます。
※ 引数(初期値)の説明は、以下サンプルコードの次に記載しています。
-webkit-border-radius: @radius;
border-radius: @radius;
}
#header {
.boxradius;
}
#footer {
.boxradius(30px);
}
他のブロックから呼び出すには、上記サンプルのように行います。
■CSSに置き換えると(LESSは自動でCSSに変換してくれます)
-webkit-border-radius: 10px;
border-radius: 10px;
}
#footer {
-webkit-border-radius: 30px;
border-radius: 30px;
}
通常CSS記述では、「#header>p」の子に対してスタイルを適用する場合、全てのセレクタが「#header>p」から記述する必要があります。しかしLESSを利用すると入れ子の記述方法で視認性やメンテナンス性を高められます。
以下「LESS記述」のサンプルコードでは、「#header」ブロック内で「p」を定義しています。LESSを使うことでの以下のメリットがあります。
何度も「#header>p」を記述しなくていい
入れ子、ブロック内での記述のため視認性が非常に高い
視認性が高いので、メンテナンス性も良い
■LESS記述
h1 {
font-size: 10px;
}
p { font-size:5px;
a { text-decoration: none;
&:hover { border-width:10px }
}
}
}
■CSSに置き換えると(LESSは自動でCSSに変換してくれます)
font-size: 10px;
}
#header p {
font-size:5px;
}
#header p a {
text-decoration: none;
}
#header p a:hover {
border-width:10px;
}
関数
LESSにはLESS独自の関数が存在し「カラー関数」や「Math関数」などがあります。
以下サンプルソースコード内の「border-color: desaturate(@red, 10%);」のdesaturate(@red, 10%);が「カラー関数」です。このdesaturate(@red, 10%)は、" @redから10%の彩度を削減した値を返す"という意味の処理になります。他にもたくさんあり、"LESS公式サイト"にて確認できます。
参照URL: http://less-ja.studiomohawk.com/#docs
@base-color: #111;
@red: #842210;
color: @base-color * 3;
border-left: @the-border;
border-right: @the-border * 2;
}
#footer {
color: @base-color + #003300;
border-color: desaturate(@red, 10%); //LESSのカラー関数
}
color: #333;
border-left: 1px;
border-right: 2px;
}
#footer {
color: #114411;
border-color: #7d2717;
}
5.「CSS」ファイルに変換するアプリ
Crunch (LESS専用エディター) http://crunchapp.net/
CrunchはAIR(AdobeAIR)で作成されています(Mac、Windows 動作可能) 。
特徴は以下の通りです。
赤枠内のようにサイト管理機能(Websiteプロジェクト単位)で修正可能。
Websiteプロジェクト内で、「.css」「.less」のみ選択可能。
エディター機能装備。
CSSファイルを書き出す際に文法をチェックし、エラーがあれば教えてくれます。
青枠内のボタンをクリックでlessで記述した内容が「CSS」ファイルで生成されます。
非常にシンプルで使いやすいですね。個人的には気に入ったのでご紹介させていただきました。デバッグ&作成作業中でも"1クリック"でCSSファイルを生成できるのでそこもいいところでしょうか。
0 件のコメント:
コメントを投稿