CSSとLESSでの階層構造の考え方
今回は技術的なLESSの文法から少し離れて、
本連載の第2回の
大枠ではCSSとLESSであまり差がないのですが、
サービスやサイトの性格にもよって変わってきますが、
(1) サイト全体を通して最低限の容量のCSS (LESS) を、 分割した複数ファイルで読み込む構成 (2) 1ページごとに最適化したCSS (LESS) を、 1ファイルのみ読み込む構成
(1)サイト全体を通して最低限の容量のCSS(LESS)を、分割した複数ファイルで読み込む構成
大きく分けて、
- ページごとの固有のCSS
(ある場合) - サイト共通のCSS
/common.less:全ページ共通パーツなどを「common.css」に変換 /page_name.less:ページごとの固有CSS「page_name.css」に変換(page_nameはページごとに変更) └ /import/:common.lessへのimport用のディレクトリ(この中のLESSファイルはcssに変換しない) ├ /import/reset.less:HTML5 Doctor CSSなど、ブラウザの誤差吸収のためのCSS ├ /import/mixin.less:LESSから参照するmixinを集めたファイル ├ /import/variable.less:LESSから参照する変数を集めたファイル └ /import/config.less:ブラウザ対応(-webkit/-mozなど)を設定するためのファイル(本連載の第7回を参照)
1つのhtmlファイルから実ファイルとして参照されるCSSは、
普段CSSでコーディングをしている方は、
はじめは複数回のリクエストが発生してしまいますが、
このように、
(2)1ページごとに最適化したCSS(LESS)を、1ファイルのみ読み込む構成
サイト全体が先ほどの
結果として、
/page_name.less:ページごとの固有CSS「page_name.css」に変換(page_nameはページごとに変更) └ /import/:page_name.lessへのimport用のディレクトリ(この中のLESSファイルはcssに変換しない) ├ /import/common.less:ページ間で共通のパーツなど ├ /import/reset.less:HTML5 Doctor CSSなどのブラウザの誤差吸収のためのCSS ├ /import/mixin.less:LESSから参照するmixinを集めたファイル ├ /import/variable.less:LESSから参照する変数を集めたファイル └ /import/config.less:ブラウザ対応(-webkit/-mozなど)を設定するためのファイル(本連載の第7回を参照)
先ほどの構成と変わったのは、
(1)
これだけではcommon.
common.
そこで、
たとえばcommon.
//common.less
header {
~中略~
}
footer {
~中略~
}
#globalNav {
~中略~
}
.infoContents {
~中略~
}
.userList {
~中略~
}
「header、
//common.less
//全ページで使う
#allPages(){
header {
~中略~
}
footer {
~中略~
}
#globalNav {
~中略~
}
}
//特定のページでしか使わない
#individualPages{
.infoContents(){
.infoContents {
~中略~
}
}
.userList(){
.userList {
~中略~
}
}
}
違いがわかるでしょうか。
- 全ページで使うheader、
footer、 #globalNav - ⇒#allPagesというidで囲み、
mixinに - 特定のページでしか使わない.infoContents、
.userList - ⇒#individualPagesというidで囲む
その後それぞれ、
あとは、
(mixinのグルーピングについては、
たとえば、
//top.less
#allPages(); //header,footer,#globalNav
#individualPages>.infoContents(); //.infoContents
こちらのファイルをコンパイルすると、
/* top.css */
header {
~中略~
}
footer {
~中略~
}
#globalNav {
~中略~
}
.infoContents {
~中略~
}
必要な箇所だけtop.
これはCSSを1つのファイルにまとめることに特化した、
ただ、
ケースに応じてより効果的な分割管理を
場合によっては、
- サイト内で特集ページは
(2) のパターンを使う - 他のページでは
(1) のパターンを使う
という方法も、
今回の分割管理の方法は、
次回は最終回です。LESSを書くのに便利なツールやアプリを紹介しますので、