この文書は、W3C 標準情報 (TR) の草案 (Working Draft)、 Syntax of CSS rules in HTML's "style" attribute (2000 年 10 月 25 日付) を ToyFish.Net が 独自に翻訳したものです。この仕様書の正式なものは W3C のサイトにある 英語版であり、その著作権は W3C が保有しています。また、翻訳に誤りがある 可能性に留意してください。
誤訳・誤植を発見された方は ToyFish.Net までお知らせください。
翻訳の最終更新日: 2000 年 11 月 2 日
Copyright ©2000 W3C® (MIT, INRIA, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply.
HTML では、要素に適用されるスタイルシートフラグメントを保持するための "style" 属性を、多くの要素で提供しています。利用できるスタイルシート言語の ひとつに、CSS があります。この草案は、"style" 属性で使用できる CSS フラグメントの構文について述べたものです。
このセクションは、公開時点でのこの文書の位置付けについて 述べたものです。
この草案は、スタイルアクティビティ の一環として CSS 作業グループが製作したものです。この文書は、 W3C やその他の利害関係者が査読するための W3C 草案 (Working Draft) です。草稿であるため、いつでも他の文書によって 更新、置換、破棄される可能性があります。W3C 草案を参照資料として 使ったり、「進行中の作業」以外のものとして引用するのは 適切ではありません。
コメントを歓迎します。公開メーリングリスト (参加方法については使い方を参照) または執筆者まで お送りください。議論はメーリングリストで行ってください。
W3C が現在公開している草案の一覧は、http://www.w3.org/TR にあります。
HTML 4.0 は、STYLE 属性を 導入しました。この属性の中には (META HTTP-EQUIV の Content-Style-Type を 使うことで) 任意のスタイル言語を入れることができますが、 デフォルトでは CSS のみ入れられることになっており、 実際にも CSS 以外が入ることはありません。XHTML のモジュラ化 (XHTML Modularization) でも、セマンティクスが HTML 4 と同じである STYLE 属性を持つ、スタイル属性 モジュール (Style Attribute Module) を導入しています。 SVG もまた、言語中立な style 属性を導入しています。 使用する言語は contentStyleType 属性で指定しますが、この属性の デフォルト値は "text/css" になっています。MathML では、CSS との互換性を保つため、MathML の要素ではすべて style 属性を利用できる としています。
この文書では、今後の XML ベースの言語で、表示についての情報 (視覚、 聴覚、触覚などのいずれによるものであれ) を持つものについても、同じように ユーザーが CSS を使ってその言語で書かれた文書や文書中の要素に スタイル指定できるよう、style 属性を加えることを推奨します。
ここでいくつか例を示しましょう。
<p style="color: #090; line-height: 1.2">...</p>
<p style="{color: #090; line-height: 1.2} :first-letter {color: #900}">...</p>
<a style="{color: #900} :link {background: #ff0} :visited {background: #fff} :hover {outline: thin red solid} :active {background: #00f}">...</a>
この文書では、単純な例 (要素自体のプロパティのみ、例 1) や、 より複雑な例 (要素の擬似擬似要素や擬似クラスのプロパティ、例 2 と 3) の、 両方について定義します。
HTML の "style" 属性で許される CSS フラグメントの構文は、 形式的には次のように規定することができます。
inline-stylesheet : S* [ declarations | inline-ruleset* ] ; declarations : declaration [ ';' S* declaration ]* ; inline-ruleset : [ pseudo* S* [ ',' S* pseudo* S* ]* ]? '{' S* declarations '}' S* ;
ここで定義されていないシンボルの定義については、 CSS 2 仕様 の付録 D (appendix D) にある文法を参照してください。
通常のスタイルシートに対して適用されるのと同じ、 前方互換な構文解析のための規則が、インラインスタイルシートに対しても 適用されます。CSS2 仕様の 4 章を 参照してください。
インラインのフラグメントが宣言のみで構成されている場合の意味については、 CSS で既に定義しています。 短く言うと、インラインのフラグメント中の宣言は、カスケーディングにおいては、 ID 選択子ひとつからなる選択子 (固有性: a=1, b=0, c=0) に相当する 「固有性」で、規則集合内で文書制作者によるスタイルシートの末尾に 置かれた場合と、同じ順番になります。例を示します。
<span style="font-weight: bold">...</span>
上記の規則は、インラインのフラグメントの中身がインライン規則集合がである 場合へ、容易に一般化できます。つまり、その規則集合は、ID 選択子ひとつ およびそのインライン規則集合にあるのと同数の擬似要素や擬似クラスを持つ 選択子に相当する固有性で、文書制作者によるスタイルシートの末尾に 同じ順番で置かれた場合と、同等に扱われます。いくつか例を示します。
<p style="{font-weight: bold} /* a=1 b=0 c=0 */ :active {color: green} /* a=1 b=1 c=0 */ :first-letter {color: #369} /* a=1 b=0 c=1 */ :first-letter:active {color: red} /* a=1 b=1 c=1 */ ">...</p>
カスケーディング規則のその他の部分については、 CSS2 の 6 章を参照してください。
[訳注: HTML 4.0 は、1999 年 12 月 24 日付で HTML 4.01 に改訂されています]
[訳注: W3C 仕様の日本語訳については、 http://www.w3.org/Consortium/Translation/Japanese に情報がまとめられています]