CSSを書く①箱の位置を決める

HTMLを書く(前編)では、「ひとまとまりの箱を作る」のを最初に決めておきました。
これは単純に、整理整頓しやすいように分類した、ということです。

この箱を置く場所を決める前に、まずは全体の指定をしておきます。

まずはIDのついた箱について設定を決めていきましょう。

#header

#headerそのものは幅が全体に及んでいるので、今のところ特に指定はありません。
分かりやすいようにグレーだけ敷いておきます。

marginは箱の外側に付く余白のことです。
指定の仕方は4種類×2です。

入れる数値は
絶対指定…px
相対指定…em(文字の大きさ)、%(箱の大きさ)
などがあります。
autoは自動計算で、空気を読んで中央に寄せてくれます。

そのなかのロゴ画像が入ってるところだけは、どれだけ幅が全体に及んでも980pxで真ん中に置きたいので、指定を追加します。

#wrap

中身の全体は分かりやすいよう黒い枠線を付けておきます。
線の太さ・タイプ・色の順にまとめて指定しています。
個別に設定もできますが、今回は目安であとで消すのでこのままで。

メイン画像も同じ幅の指定です。
同様に中央寄せにしておきます。

ナビも幅は同様です。
分かりやすいように背景色を付けました。

コンテンツ内も同様です。
#mainAreaは左、#sideAreaは右側に置きたいので、今回はfloatで浮かせます。

floatはおそらく最初に引っかかるポイントです。
場所を指定するイメージが強いですが、実際のところはふわふわ浮いている状態です。
この状態ではブラウザに高さがあると認識してくれません。
高さがゼロになってしまうので、そのままだとレイアウトは崩れてしまいます。

そのため、繋ぎとめて上げる必要があります。
その方法はclearで指定できます。
それぞれで指定する方法もあるのですが、それも面倒なのでクラスを一つ作ってしまいます。
その方法で最も有名なのがclearfixです。

上記の方法は、箱内に重石を作り、そこに浮かせた要素を固定する方法です。
これには色々なやり方があるので、調べてみると良いと思います。

floatはめんどくさいですが、これを覚えてしまうとあらゆるレイアウトの5割は再現できます。

#footer

#footerも指定しておきます。
paddingは箱内に作る余白なので、背景色を敷いた場合にも適用されます。
指定の種類はmarginと同じです。

これで箱の位置を決めることが出来ました。
実際に作ったものを見てみましょう。
→CSSの箱のサンプル

ちなみに指定する順番は、自分でルールを作っておくと良いと思います。
(とっちらかると意外と後から探すのが面倒)
オススメは
大きさに関すること→位置関係→文字関係→その他、装飾など
です。
次回はもっと細かくデザインを適応させていきます。

<フロートの使い所>

フロートはよく使われ、とても便利な要素です。
ただ、clearfixを使って無理やり押し込んでる状態なのでとっつきにくいし、そもそも完璧に正しいわけではありません。
しかし現状もっとも手軽に、かつ昔のブラウザでもデザインの再現が可能なやり方です。
全てにこれを使ってしまうとこんがらがってしまうので、フロートを使わなくてもいいところでは極力他の方法も探してみましょう。