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

CSSとは

CSSが何の略か、は今回も置いておきます。
HTMLは要素の配置ですが、更にデザインを再現させるのがCSSの役割です。

紙に限らず、WEBでもデザイン優先です。
もちろん状況によってできないことはあります。ECサイトなどは特に制限が大きいです。
でもせっかく趣味のサイトなんだから、入れたいことを盛り込みましょう。
仕事じゃないんだから、作ってて楽しいのが一番。
やりたいデザインを実現するためには、CSSを理解するのが大事です。

基本の書き方

反映させたい箇所(セレクタ) {要素(プロパティ):その内容(値)}
です。
基本はたったこれだけ。

書く場所は3通りです。

1.専用ファイルを作成して、htmlを読み込ませる。

どのページにも適用させたい、別にまとめたいものはこのやり方です。
ヘッダーやフッター、基本のレイアウトなど。
複数読み込ませることも出来ます。
その場合、上から順次適用されていきます。

外部ファイルを使用するときは、htmlと同様に1行目に文字コードの宣言を入れておきます。

2.htmlと同じページのhead内に書き込む。

そのページ内での独自のCSSのときに使用します。
1.よりも優先順位が高くなります。

3.適用させたい箇所に直接書く。

特定の箇所のみ適用させたい時に使用します。
1.2.よりも優先順位が高くなります。

優先順位が高くなるほど汎用性は低くなります。

CSSをリセットする

実際にCSSを書く前に、サンプルをよく見てみましょう。
→トップのサンプル


微妙に隙間があったり、色が指定されています。
これはブラウザが「見やすいように」気を利かせてくれているからです。
ですが、自分で設定する場合はこれが邪魔をしてきます。

そのために、現在ブラウザで指定されているスタイルを全てリセットしてしまいます。

本当はもっとあったほうが良いのですが、いったんこれだけで。

リセットCSSは色々作ってくれている人がいるので、そちらを借りることも出来ます。
reset css とかで検索すると色々出てきます。
慣れてきたら自分でカスタマイズしましょう。

→リセットCSSを適用させたサンプル

きっちり詰め詰めになりました。
次回はデザインに合わせてCSSを書いていきます。

<!importantを使うとき>

CSSでどうしても優先させて使いたいのに、他のスタイルが適用されてしまい、でもそのCSSは触りたくない、という時があります。
そんなときは!importantを使います。

ただ、基本的には使わないほうが無難です。
色んな所で使った挙句、何が原因かわからない…ということになるからです。