Let's begin XHTML―さあ始めよう XHTML

Section 16:スタイルシートの利用(2)

 Section 15 で,スタイルシートの概要について説明した。ここでは,スタイルシート,特に CSS で書かれたものを XHTML 文書に適用させる方法を説明する。

スタイルシートの適用

 ここでは,CSS で書かれたスタイルシートを XHTML に適用させる方法を 3 つほど紹介する。

CSS のスタイルシートのファイルを link 要素で取り込む

 CSS では,前記のような構造に対する表現のしかたを記述したものを,ファイルとして用意することができる。これは,link 要素によって取り込み,適用させる。このときの書式は次のようになる。

<link rel="stylesheet" type="text/css" href="URI" />

ここで,rel 属性には“stylesheet”,type 属性には CSS のメディアタイプ(MIME タイプ)である“text/css”を与える。href 属性には,CSS によるファイルの URI を指定する。

 たとえば,同じディレクトリにあるファイル“style.css”(一般に,CSS によるファイルは拡張子“.css”を伴う)を適用させるときは,

<link rel="stylesheet" type="text/css" href="style.css" />

のように書く。link 要素は head 要素の内容としてしか出現しないことに注意されたい。

 この方法では,スタイルシートのファイルを複数の XHTML 文書から参照することで,Section 15 で述べた“複数の文書に統一したスタイルを適用させる”ことが容易にできる。CSS を利用してサイトを構築する場合には,この方法をお勧めする。

 ちなみに,出力メディアによって適用するスタイルを変える方法などもある。これは Hop step XHTML の Section 23 で説明する。

XHTML 中に style 要素として埋め込む

 CSS によるスタイルシートは,XHTML 中に埋め込むこともできる。そのために,style 要素を使用する。style 要素は,head 要素の内容として出現する要素である。CSS を style 要素に記述するには,次のような書式で用いる。

<style type="text/css">...</style>

style 要素には,記述するスタイルシート言語のメディアタイプ(MIME タイプ)を与える,必須の type 属性があり,CSS の場合この値は“text/css”とする。

 たとえば,前の Section で掲げた CSS の記述であれば,

<style type="text/css">
h1 { font-size: 200%; text-align: center; color: #900; }
p { line-height: 150%; margin-left: 10%; }
</style>

と書けばよい。

 この方法でも,メディアによって適用するスタイルを変更させられる。方法については Hop step XHTML の Section 24 で説明するする。

 HTML では,style 要素の内容が,未対応ブラウザで誤って表示されてしまわないために,それを“<!--”と“-->”でくくって,コメントとして記述することが多かったが,XHTML では,style 要素の内容をコメントとしてはならない。本当にコメントとしてみなされ読み飛ばされてしまう

XHTML 要素の style 属性に書き込む

 この方法は,前記の 2 つに比べると大きく異なっている。XHTML の要素のほとんどには,style 属性があり,体裁に関する指定を書き込むことができる(前目の style 要素とは異なるものである)。CSS の場合には,その要素に適用するべき宣言(表現の要因を表すプロパティとそれに対する値の組)を書き込む。たとえば,

<h1 style="font-size: 200%; text-align: center; color: #900;">無益な争い</h1>

では,上記の要素にのみ style 属性の値とした CSS の記述が適用される。

 このように,style 属性を使用する方法は,それを指定した要素にのみしか体裁の指定がなされない。これは,特定の部分に例外的な体裁を指定するのに有効な方法ではあるが,文書全体に渡ってこの方法を用いるのは,XHTML の中に(メディアに依存してしまうような)表現に関する記述が混じってしまうという点で好ましくなく,何よりも煩雑である。さらに,この書き方は,XHTML 1.1 では推奨されない