スタイルシートのIDは、一つのHTMLファイルの中で一度しか使えません。なんだか使いにくいものに感じますが、実はCSSのIDはとても便利な機能を持っています。
よく、こんな感じのレイアウトになっているホームページを見かけませんか?
各ページ共通のデザインのヘッダー、メニュー、フッター、メインコンテンツのサイトです。みなさんが今見ているこのhtml-css.comもこのようなレイアウト・デザインです。
こんなデザインのサイトをあなたが作ったとします。そしてヘッダーに<p>タグで一言文字を書き、メニューに<p>で別の文字を書き、メインコンテンツやフッターにも<p>を使うとします。全てのエリアで<p>タグのデザインが違ったら、どうしますか?
スタイルシートで各エリア分のクラス名を作って、HTMLの各エリアの<p>タグにclass名を入れますか?一つのエリアに<p>が何箇所も出てくるのに、毎回クラス名を入れるなんて、いやですすよね?タグはごちゃごちゃするし、面倒です。
こんな面倒なことをしなくても、スタイルシートにエリアをIDとして教えてあげれば、わざわざ<p class="menu">とか<p class="main">と毎回入れずに、<p>だけで別々のデザインを適応させることができるんです。便利ですよね。ここでは、このIDの説明をします。
<div>タグというのはスタイルシートを上手に使っている人は必ず使っているhtmlタグです。<div>タグのdivは、divisionの略で、区域と言う意味です。<div>タグはブロックレベル要素ですが、<p>タグのように上下の大きな余白で段落を作りませんから、デザインを適応させたりヘッダーやメニューなどエリア分けするのにとても便利です。
まずは上記レイアウトの元になるHTMLタグを用意しましょう。今回は下記のHTMLタグを使います。
それぞれのエリアを<div>タグにIDとして属性をつけます。タグにIDをつけるときは、半角スペース入力後に id="●" となります。●にIDの名前が入ります。名前は何でもいいのですが、今回はシンプルに下記のID名にしました。
上記のHTMLタグに、それぞれ<div>にIDをつけて入力してみましょう。<div>はエリアですので<p>をはさむように</div>として入れ子にします。
HTMLタグは以上で終わりです。あとのデザインはstyle.cssにIDのデザインを記入していきます。スタイルシートにIDを記入するときは、ID名の前に#をつけます。そして半角スペースの後に通常通りタグを書きます。#header p{ }のように書なります。各エリアのデザインは、次のようにしてみます。
ID名とタグを書いたスタイルシートは、下記のようになります。
ヘッダー
メニュー
メインコンテンツ
メインコンテンツ
メインコンテンツ
フッター
<div>タグ内の<p>タグのデザインがそれぞれのデザインに変わりましたね。そのIDの中の<p>タグなら何度使っても同じデザインになります。ただ、これだけではこのページのトップに出ていたページレイアウトになっていません。メニューを左において、メインコンテンツを右におきたいです。次ではスタイルシートで左右のレイアウトをする方法を紹介します。