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