独自レイアウト「HTML」、「CSS」と、前ページのレイアウト図とを見比べて、現時点のページレイアウトを理解しておきましょう。
まず「HTML」をご覧ください。いくつか <div>~</div> で囲まれている組みが見つかります。
- container
-
- header
- navigation
-
- sidebar
- content
- footer
「container」が一番外側で囲んでいます。 その内側に「header」「navigation」「content」「footer」が並び、「navigation」の中に「sidebar」が含まれます。
前ページのレイアウト図と見比べてみると、ページ全体の“台紙”のような役割を「container」が担い、その上に「header」「navigation」「content」「footer」が配置され、さらに「navigation」の領域内に「sidebar」が置かれています。
通常、「HTML」に記述された各コンテンツは、記述された順番に上から下に向かって配置されます。ところが、このレイアウト図によれば、「navigation」と「content」が左右に並んで配置されています。
それでは「CSS」の41、42行と49、50行をご覧ください:
41 #navigation { /* メニュー */
42 float:left;
49 #content { /* コンテンツ */
50 float:right;
この「float: left;」は指定した要素を左に寄せ、後に続く内容をその右側に回り込ませ、「float: right;」は指定した要素を右に寄せ、後に続く内容をその左側に回り込ませます。
この結果、「navigation」が左側に、「content」が右側に並びます。
若干の注意としては、42行だけで「navigation」が左寄せされ、続く「content」はその右側に配置されますが、42行だけでは「content」は「navigation」のすぐ右隣に配置されるのに対し、50行は「content」を「container」内で右寄せします。
したがって、「container」「navigation」「content」の幅(width)や余白(padding)の設定によっては横並びになるとは限りません。
次に「CSS」の54、55行をご覧ください:
54 #footer {
55 clear:both;
「clear:both」は floatプロパティで左寄せ、または右寄せを指定された要素に対する回り込みを解除します。
この結果、「footer」が「container」の最下部に“普通に”配置されます。