クラスによる選択

HTML+CSS2の環境で、多様な体裁を構造的に書き分けるにはクラス を利用する。クラスには明示的に指定するものと、文脈や要素の組み合わせ方な どにより自動的に決まるものがある。

クラス選択子

全ての要素には class 属性を持たせられる。属性値には任意の名前を 割り当ててスタイル情報を割り当てることが期待されている。たとえば、

<p class="passion">感情的な表現…</p>

と passion から想起するスタイルを定義しておいて

うらみまーす♪
ずーとずーっと溜めている、ガソリン給油のポイント。 20リットル以上で1ポイント。たまに19リットルくらいでも負けてくれることが 多いのに、この前は19.8リットルでスタンプ押してくれなかった! えーん。

のように見せたりするだとかの利用ができる。

要素 Xの class 属性値に foo という単語が含まれている場合に マッチするスタイル定義は、

X[class~="foo"] { 〜〜定義本体〜〜 }

となる。これにより、HTML側で

<X class="foo"> .... <X>

または

<X class="hoge foo bar"> .... <X>

とした場合に上記の「定義本体」で指定した特性値設定が利用される。

この選択規則はよく用いられるので

X[class~="foo"] { }

は、

X.foo { }

と簡略的に表記できる。

また、特定の要素だけでなく、同じクラス名の要素どれでもそのクラスを 利用できるものを定義するときは要素名を * とするか、要素名自 体を省略できる。たとえば、クラス foo を全ての要素に対して定義するなら

*.foo { ... }

または、

.foo { ... }

とする。

ID選択子

全ての要素には id 属性を持たせられる。属性値には文書中で唯一に 定まる該当要素固有の名前を割り当てることが期待されている。これを 利用して、特定の要素のみに適用するクラスを定義できる。たとえば、 HTML文書中で

<p id="preface">この文書は…ほげほげ</p>

というidをもつ要素(この場合パラグラフ)のみに適用させるスタイルは、

p#preface { ... }

とする。クラス定義など他のマッチング規則から、特定の要素を除外する 場合に利用できる。

擬似クラス

特定の条件を満たす要素、あるいはその内容物の一部だけに適用される スタイルを定義するのが擬似クラスである。

:link, :visited でcolor特性を指定すると、 :link:hover, :visited:hover にも自動的にその色が継承される。このため、 a:hover のcolor特性値を定義したあとで a:linkやa:visitedのcolor特性値を設 定するとそれによって a:hover のcolor特性値が上書きされる。別々の 色を指定したい場合は

a:hover {color: yellow}
a:link {color: #00f}
a:visited {color: #44a}

としても、最初の定義は上書きされてしまうので、

a:link {color: #00f}
a:visited {color: #44a}
a:hover {color: yellow}

と書く必要がある。

yuuji@koeki-u.ac.jp