HTMLの仕様における、CSSなどのスタイルシート言語の取り扱いについて解説します。
HTMLでスタイルシート言語を扱う要素として、以下の二つが定義されております。
rel="stylesheet"属性を記述する事で、外部スタイルシートファイルをリンクする事が出来ます。HTML 4.01以降では、スタイルシート言語の取り扱いに関して、三つのタイプが用意されております。
つまり、閲覧者は
事になります。
HTML 4.01以降、スタイルシート定義ファイルの扱いについては属性によって明確に区別されます。
<link>要素でスタイルシートをリンクする場合、以下の三種類を指定出来ます。
rel="stylesheet"属性を与えられ、title属性が無い<link>要素でリンクされているものrel="stylesheet"属性を与えられ、title属性を持つ<link>要素でリンクされているものrel="alternete stylesheet"属性を与えられ、title属性を持つ<link>要素でリンクされているもの<style>要素の場合、<link>要素と違ってrel属性が定義されていないため、rel属性の値で区別する事は出来ません。
このため、<style>要素では代替スタイルシートは記述出来ません。
結局、
となります。
優先スタイルシート及び代替スタイルシートではtitle属性を用いる事でそのように指定しますが、title属性の値にも意味があります。
すなわち、複数のスタイルシートを利用する場合、title属性の内容が同じもの全部をセットにして、セット単位で選択出来るようになっております。
例えば、スタイルシート言語に関する<link>要素及び<style>要素で
title="Marguerite"属性が与えられているものtitle="Sakura"属性が与えられているものtitle="Nanohana"属性が与えられているものが用意されている場合、閲覧者はtitle属性が与えられていない固定スタイルシートに加えて、
title="Marguerite"が与えられているスタイルシート要素全部title="Sakura"が与えられているスタイルシート要素全部title="Nanohana"が与えられているスタイルシート要素全部のいずれかを有効に出来ます。
残念ながら、このスタイルシート言語の選択機能に関しては、実装がまだまだ遅れているようです。
このため、選択機能が正しく実装されていない場合、スタイルがごちゃ混ぜになる恐れもあります。
HTML 3.2ではスタイルシート言語を利用するための要素が正式に定義されておりません。
それでも、<link>要素は定義されているため、スタイルシート定義ファイルのリンクは可能です。