この文書は、「Cascading Style Sheets (CSS) Snapshot 2007 (W3C Candidate Recommendation 12 May 2011)」の日本語訳です。
原文の最新版 は、この日本語訳が参照した版から更新されている可能性があります。
この日本語訳は参考情報であり、正式な文書ではないことにご注意ください。また、翻訳において生じた誤りが含まれる可能性があります。他の仕様の訳については Web 標準仕様 日本語訳一覧 を参照してください。
Copyright © 2011 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
この文書は、2007 年時点における各 CSS (Cascading Style Sheets) 仕様のステータスをまとめた上で、今日の CSS 仕様を定義するものです。主な対象読者は CSS を利用する方ではなく、CSS 仕様を実装する方になります。これは、この文書で定義する各 CSS 仕様は Web ブラウザーの実装度合いではなく、仕様の安定性をもとに選ばれていることにあります。
この章は、この文書の公開時におけるステータスについて説明しています。このため、他の仕様がこの文書を上書きしている可能性があります。W3C による他の出版物およびこの技術レポートの最新版は W3C 技術レポートインデックス (http://www.w3.org/TR/) で探すことができます。
WG ノートとしての公開は、W3C メンバーによる支持を意味するものではありません。この文書は更新されたり他の文書と置き換えられたり、また破棄される可能性もある草稿段階の仕様書です。策定中ということを明記せずに、この文書を引用することは適当でありません。
この文書は CSS Working Group (Style Activity) によって作成されました。
この文書は 5 February 2004 W3C Patent Policy の下で活動するグループにより作成されました。W3C は 特許情報の開示に関する公開リスト を関連する団体と共に、その成果物とあわせて管理しています。リストには情報開示に関する説明もありますので、ご参照ください。特許について十分に知識のある人物が、当該仕様に関し Essential Claim(s) が認められると判断した場合は、W3C 特許方針の第 6 章 に従い情報を開示する必要があります。
この仕様へのコメントは公開メーリングリスト www-style@w3.org (アーカイブ) にお願いします (議論への参加の前に、参加手順 をお読みください)。メールを送る際は、件名に “css-beijing” を含めてください。たとえば、 “[css-beijing] …summary of comment…” という書式が適当です。
この文書は 2007 年時点における CSS の状況を表すものです。CSS WG は今後この文書の改訂を考えていません。代わりに新しいスナップショットが CSS が進行するたびに http://www.w3.org/TR/CSS/ で公開されます。
最初の CSS 仕様が公開された当時、すべての CSS 仕様は CSS Level 1 という一つの文書に定義されていました。CSS Level 2 は章立てになったものの、CSS Level 1 と同じく一つの文書にすべて定義されていました。しかし、Level 2 以上の CSS について、CSS Working Group (以下 CSSWG) は「モジュール化」というアプローチを選択しました。単一の仕様書ですべてを定義するのではなく、複数のモジュールから CSS 仕様を構成するというものです。仕様を分割することで管理しやすくなるほか、早く、段階的に CSS の改善を行うことができるようになります。
それぞれの CSS モジュールは、異なった安定状態にあります。このため、CSSWG は、2007 年現在における CSS がどの仕様を指すか、また CSS 現状をまとめたこのプロファイルを公開することにしました。このプロファイルには、私たちが安定していると考え、そしてその安定性を保証する充分な実装と経験を持つ CSS 仕様のみが含まれています。
しかし、このプロファイルを「デスクトップブラウザーのための CSS プロファイル」と解釈しないでください。このプロファイルは、定義される機能の安定性のみを基準として選んだものです。このプロファイルは、完成形に近い CSS を定義しています。
また、仕様に大きな変更を加えるつもりはありませんが、このプロファイルに存在しているからといってその仕様が確定したと考えないでください。Working Group は仕様に見つかった問題は引き続き対処し続けます。実装者は www-style や CSS Working Group Blog を読み、何か変更や修正があったかどうかを確認するようにしてください。
このセクションは非規範的です。
W3C のプロセス では、勧告トラック (Recommendation-track) に進んだ文書は、次に説明する五段階の安定度にあるとされています。
CSSWG の経験をふまえると、勧告トラックは一直線でないといえます。最終草案の段階で寄せられる多くの意見により、多くの場合、もう一回またはそれ以上の草案が出る結果となります。CSS についてはより顕著で、多くの仕様が二度も勧告候補となる事態が発生しました。これは実装テストによって仕様の重大な問題が明らかになり、草案に差し戻されたことによります。また、小さな問題の修正も勧告候補からまた草案に戻されることを必要とします。
結果、CSSWG は CSS 仕様の安定性に関し明確な考えを持っているにもかかわらず、WG 外の人間と仕様の公式なステータスについて、同じ理解を持つことが非常に難しくなっているのです。CSSWG がこの文書を作成する目的は、CSS の現状について私たちが持つ理解を外に伝えることにあります。
CSS は従来からあるバージョンではなく レベル (levels) という概念を持っています。各レベルの CSS は下位レベルの上に構築され、その定義を洗練させる、または機能を追加したものになります。上位レベルの機能は下位レベルのスーパーセットであり、また上位レベルの挙動は下位レベルのサブセットとなります。このため、上位レベルの CSS に適合するユーザーエージェントは、すべての下位レベルにもまた適合するものとなります。
CSSWG は、CSS1 仕様 を廃止されたもの (obsolete) と考えています。CSS Level 1 は CSS1 仕様で定義された、プロパティ、値、@ 規則などの機能すべてを指すものとされていますが、CSS1 仕様書にある構文や定義は CSS 2.1 仕様 のものです。また、CSS Style Attributes がスタイルシートを要素固有のスタイル属性に埋め込む方法を定義しています。
CSS2 仕様 は建前的には W3C 勧告となっていますが、この仕様は W3C が勧告候補という段階を設ける前の文書です。このため、その後の実装経験とさらなるレビューにより、CSS2 仕様にはさまざまな問題があることが分かりました。膨れ続ける 手に負えない量のエラッタ に対処するため、CSSWG は CSS Level 2 Revision 1 (CSS 2.1) を定義することを決定したのです。
CSS 2.1 は現在勧告候補となっています。肩書きにおいては違いますが、事実上は CSS2 以上の安定性を持っています。このため、CSS 2.1 は CSS2 勧告を廃止する (obsolete) ものと考えてよいでしょう。ふたつの仕様に齟齬がある場合は、CSS 2.1 が確実な定義を行っていると考えてください。CSS 2.1 から削除された CSS2 の機能は、勧告候補の段階にあるものと考えて構いません。しかし、それらの多くは Level 3 の CSS 仕様に盛り込まれることになるでしょう。そして、それらの仕様が CR に達したとき、CSS2 の定義は廃止される (obsolete) ものと考えてください。
結論としては、CSS 2.1 仕様 が CSS Level 2 を定義するものとなります。また、CSS Style Attributes がスタイルシートを要素固有のスタイル属性に埋め込む方法を定義します。
このセクションは非規範的です。
CSS Level 3 は CSS 2.1 仕様を核に、CSS Level 2 より上位の CSS 仕様をモジュールにより構成するものです。各モジュールは CSS 2.1 仕様に機能を追加する、または一部を変更するものです。CSSWG は、新しい CSS モジュールが CSS 2.1 仕様と矛盾しないよう心がけています。つまり、新しいモジュールは機能を追加するか、定義を洗練させたものとなります。各モジュールの策定が終了すれば、それらは CSS 2.1 と、その時点で終了しているモジュールで構成される CSS システムに追加されることとなります。
CSS3 以降のモジュールは、機能ごとに独立したレベルを持つことになります。たとえば、Selectors Level 4 が CSS Line Module Level 3 の前に定義されるということが起こるかもしれません。
2007 年時点で、CSS は次のリストにある仕様から構成されることになります。リストの並びには意味があります。まず、リストの最初にある CSS 2.1 が基礎となります。そして、後に来る項目はその前の仕様の上に構築され、一部に変更を加えます。(言い換えれば、CSS は CSS 2.1 が CSS Style Attributes により変更され、CSS Namespaces により変更され、Selectors Level 3 により変更され…という繰り返しにより定義されます。) 妥当な CSS 文書はこの定義に適合するものとなります。
訳注:CSS 2.1 を除き、上記の仕様には日本語訳があります。
CSS にはフォールバック値をあてがうという、前方互換なパース処理規則が存在します。これを製作者が利用できるようにするため、CSS レイアウトの実装者は、利用できるレベルにない @ 規則やプロパティ、値、キーワード、その他の構文を非妥当なものとして扱う (また必要に応じて 無視 する) 必要があります (MUST)。特にユーザーエージェントは、複数の値が指定された宣言のうち、サポートしていない値のみを無視するといったことをしてはいけません (MUST NOT)。非妥当な値 (サポートしていない値もそうなります) がある場合、CSS は宣言すべてを無視する必要があると定めています。
すべての実装が、CSS で定義されている機能すべてを実装しているわけではありません。ある実装では、特定の CSS プロファイル (CSS Profile) で必須とされる機能のみを実装しているということがあります。プロファイルとは、特定のクラスの CSS 実装において基本であると考えられる機能を定義した、CSS のサブセットです。CSSWG は、次の CSS プロファイルを定義しています。
プロプライエタリなプロパティや値の拡張が、将来の CSS で定義される機能と衝突しないように、CSS 2.1 仕様では 接頭辞構文 というものを予約しています。CSSWG は、CSS 草案で定義されている機能の実験的な実装にはベンダー接頭辞をつけたプロパティ名、または値の名前を使うことを推奨しています。これにより、その後草案に変更があったときに互換性がなくなってしまう状況を避けることができます。しかし、仕様が勧告候補の段階に達したとき、実装者は仕様に正しく従って実装された機能全てについて、接頭辞なしの構文を実装することが奨励されています。