CSSを用いたページの設計を学習します。
まずは、HTMLの構造を決めます。一般に、ヘッダー、コンテンツ、メニュー、フッターなどの構造を持ちます。SEO(Search Engine Optimization)では「重要なものほど前に書く」ため、コンテンツはメニューよりも先に書くのが良いとされています。また、ページ全体のブロックを用意して置く方がデザインをするのに便利です。
一般的なHTML構造
<div id="page"> <div id="header"> </div> <div id="block"> <div id="contents"> </div> <div id="menu"> </div> </div> <div id="footer"> </div> </div>
この例ではコンテンツとメニューは二段組を考慮して#blockにしてあります。
コンテンツの最下部にフッターを表示したい場合には、#contents中に#footerを入れた構造にしても良いです。
さらに、各ブロック内にもHTML構造があります。ここでは、以前、制作の流れで紹介した見出しと段落の組が3つある文章を示します。
見出しと段落の組が3つある文章
<div id="contents"> <h1> </h1> <p> </p> <div id="h2_block"> <div class="h2" id="h2_1"> <h2> </h2> <p> </p> </div> <div class="h2" id="h2_2"> <h2> </h2> <p> </p> </div> </div> </div>
2つのh2クラスは識別用のIDを付け、二段組を考慮して#h2_blockにしています。
ページ全体のスタイルは以下の手順で作成していきます。
逆に、最初に各ブロックの大きさと配置を決めて、その範囲内で各ブロックのスタイルを設定する作り方もあります。
セレクタで#contentsや#menuから始まるようなスタイルの指定をしていれば、互いのスタイルが干渉することはない筈です。
同様にして、ヘッダーとフッターにもスタイルをつけます。
ページレイアウトを考え、各ブロックをpositionやfloatを使って配置していきます。よくある2段組などは配置の項目で学習したスタイルを参考にしてください。
メニューバーの配置は、メニューバーを置くスペースをマージンなどで空けておき、絶対配置で上に持ってきます。
仕上げにページそのものにスタイルをつけます。#pageやbody要素に幅、背景色、背景画像といったスタイルを指定します。
body { background-color:#ccccff; } #page { margin:0 auto; width:950px; background-color:#ffffff; }
この例では固定幅にして、中央に寄せています。
HTMLのclass属性には、クラス名を複数並べて指定することができます。複数のクラス属性を使うことで、同じクラスでも異なった指定をすることが可能です。
例 複数クラス指定HTML
<p class="red border">あああ</p>
例 複数クラス指定CSS
p.red { color:red; } p.border { border:solid 1px blue; }
例 複数クラス指定 結果
あああ
サイト全体で統一したレイアウトにしたい場合には、サイト内の各ページの要素の書き方を統一し、同じスタイルファイルを参照します。
スタイルファイルを一つにすることで、サイトのレイアウトを変更の際に、全ページ一度に変更することができます。これは、サイトデザインの変更作業を大幅に減らすことができ、効率的です。
サイト共通スタイルを使用した際、特定のページのみ設定を変えたい場合があります。この場合、下記のような方法があります。
変更箇所が少ない場合には、スタイルファイルが一つで済むため、前者が簡単です。変更箇所が多いと記述箇所を探すのが大変になるため、後者が良い場合もあります。
例 IDによる特定ページの指定
#en p { color:red; } #jp p { color:blue; }
cssZenGardenの英語版・日本語版のサイトデザインをせよ。
Programming Laboratory (Shio seminar)