今回のエントリーでは、前回紹介したSassを利用して簡単に2カラムのサイトを作ってみます。SassはCSSをプログラミングのように組める言語となっていて、変数が使用できます。その変数を利用することで2カラムサイトが簡単にできてしまいます。では実際に出来上がったものを見てもらいましょう。
以下がHTMLとSassのソースとなります。
<div id="header"> <h1 class="title"></h1> </div> <div id="content" class="clearfix"> <div id="left_line"></div> <div id="right_line"></div> </div>
// パラメータ
$column_left_grid_num: 24;
$column_right_grid_num: 7;
$column_between_grid_num: 1;
$one_grid: 30px;
// 総grid数(カラム間のgrid数も足す)
$all_grid_partition_num: $column_left_grid_num + $column_right_grid_num + $column_between_grid_num;
// サイズの計算
$container_width: $all_grid_partition_num * $one_grid;
$column_left_width: $column_left_grid_num * $one_grid;
$column_right_width: $column_right_grid_num * $one_grid;
// design
$main_color: #B7EA99;
$sub_color: #ECFCE2;
$menu_color: #83D361;
/*--------------------------------------------
サイト全体
--------------------------------------------*/
body {
background-color: $main_color;
}
div#container {
background-color: $main_color;
width: $container_width;
margin: auto;
margin-top: $one_grid;
}
/*--------------------------------------------
ヘッダー
--------------------------------------------*/
div#header {
h1.title {
background-color: $sub_color;
width: $container_width;
margin: 0px 0px $one_grid 0px;
// 内容が無いため高さ設定
height: $one_grid*2;
}
}
/*--------------------------------------------
コンテンツ
--------------------------------------------*/
div#content {
width: $container_width;
div#left_line {
background-color: $sub_color;
width: $column_left_width;
float: left;
margin-right: $one_grid;
// 内容が無いため高さ設定
height: $one_grid*15;
}
div#right_line {
background-color: $menu_color;
width: $column_right_width;
float: left;
// 内容が無いため高さ設定
height: $one_grid*10;
}
}
.clearfix:after {
display: block;
clear: both;
height: 0px;
visibility: hidden;
content: ".";
}
既に他のC言語やjavaScriptなどの言語を習得している方は、Sassのソースを見てだいたいは見当がつくのではないでしょうか。やっていることはすごく簡単です。「$(ダラー)」を先頭に記述している文字列が変数となっていて、marginなどの幅に関係している要素を全て加算し、サイト全体のwidthを計算しています。
実際はmarginだけでなく、paddingやborder幅も含まれてきますが、今回のテストソースではできる限りシンプルにするため除いています。
ここまではCSSと何ら変わらないのでは?と思いになるかもしれません。しかしSassを利用したCSS作成の本当の真価は、修正時に発揮されます。では右のカラムの幅を大きくして、左のカラムの幅を小さくしてみましょう。変更するソースは以下です。
// パラメータ $column_left_grid_num: 19; $column_right_grid_num: 12; $column_between_grid_num: 1; $one_grid: 30px;
変更後のサイトデザインは以下になりました。
今までCSSで「幅を変えたからここのマージンを調整して……あ、カラムがずれた、あれどこが計算間違いしてるのかな……」なんてことに時間を取られた方はいるのではないでしょうか。というより、悩まされたのは私です;;。今回はSassを使用しましたが、変数の機能を持ったものはSassだけでなくLESSなどいろいろあります。今回のエントリのようなテンプレートを少しずつ増やしていき、簡単にデザインができるよう蓄積していくことで、より自分が楽をすることができます。ぜひ使ってみてください。

