Categories
CSS Sass

Sassを使って2カラムのサイトを簡単に作ろう

今回のエントリーでは、前回紹介した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などいろいろあります。今回のエントリのようなテンプレートを少しずつ増やしていき、簡単にデザインができるよう蓄積していくことで、より自分が楽をすることができます。ぜひ使ってみてください。

Leave a Reply

Your email address will not be published. Required fields are marked *