目次
CSSコミュニティーはCSS2が1998年に勧告となって以来、CSS2仕様とともに意味のある経験を得ている。CSS2仕様における誤りは、後に2011年の最初の改訂版[CSS21]で修正されているが、新しいエラッタが必要であった。
問題の多くは今後のCSS3仕様によって対処される一方で、現在の状況は、CSS2の実装と相互運用性を妨げている。CSS 2.2仕様は、この状況への対処を以下によって試みている:
このように、CSS2スタイルシートが必ずしもCSS 2.2と前方互換性があるとは限らないことが事実である一方、今日の適合したユーザーエージェントを満足させつつ、将来にわたって前方互換性を維持する可能性が高くなることも事実である。前方互換性を破棄することが好ましいことではないものの、我々はCSS 2.2における改訂の長所が価値あるものと信じる。
CSS 2.2は、CSS2およびCSS 2.1から派生しており、これらの置換を意図する。CSS2の一部は、CSS 2.2においても不変である。一部は変更されており、そして削除されている。削除された部分は、将来のCSS3仕様で使用されるかもしれない。将来の仕様はCSS 2.2を参照すべきである(ただし、CSS 2.2で削除されたCSS2の機能を必要とし、その上でそれらの機能のためにCSS2を参照する必要がある場合、つまり、削除された機能を含むCSS3モジュールの機能を参照する場合を除く)。
この節は非規範的である。
この仕様は2種類の読者を念頭においている。CSS著者とCSS実装者である。我々は、この仕様が著者に対してCSSの実装の詳細が過度に提示することなく、効率的で魅力的、そしてアクセシブルなCSS文書を書くために必要な手段を提供することを望んでいる。しかし、実装者は適合ユーザーエージェントを作成するために必要なすべてを見出だすべきである。この仕様は、CSSの一般的な説明から始まり、読みすすめるにしたがって技術的かつ具体的な内容へと進んでいく。情報へのすばやいアクセスのために、電子版と印刷版の両方に、総目次、各章の冒頭での目次、そして索引による簡単なナビゲーションを提供している。
この仕様は、電子版と印刷版という2つの表現方法を念頭において執筆されている。電子版と印刷版が同類であることは疑いないだろうが、読者は多少の相違点を見つけるだろう。たとえば、印刷版においてリンクは(いうまでもなく)動作せず、電子版においてページ番号は表示されない。食い違いがある場合、電子版を文書の正式なバージョンとみなす。
この節は非規範的である。
この仕様は以下の章で構成される:
各CSSプロパティの定義は、下記の主要情報の要約で始まる:
プロパティ名: | property-name |
---|---|
値: | 正当な値とその構文 |
初期値: | 初期値 |
適用要素: | そのプロパティが適用される要素 |
継承: | プロパティが継承されるかどうか |
パーセンテージ: | どのようにパーセント値を解釈するか |
メディア: | プロパティが適用されるメディアグループ |
算出値: | 算出値を計算する方法 |
この部分は、名前が'プロパティ名'のプロパティに対して妥当な値の集合を規定する。プロパティ値は、1つ以上のコンポーネントを持つことができる。コンポーネント値の型は、複数の方法で指定される:
これらの定義においてその他の単語は、引用符なしで(たとえばred)、リテラルに出現しなければならないキーワードである。スラッシュ(/)やコンマ(,)などもリテラルに出現しなければならない。
コンポーネントの値は、次のようにプロパティ値に配置してもよい:
並置は二重アンパサンドよりも強く、二重アンパサンドは二重縦線よりも強く、二重縦線は縦線よりも強い。したがって次の2行は等価である:
a b | c || d && e f [ a b ] | [ c || [ d && [ e f ]]]
すべての型、キーワード、角括弧グループは、次の量指定子を付けてもよい:
次の例はさまざまな値の型を示す:
Value: N | NW | NE
Value: [ <length> | thick | thin ]{1,4}
Value: [<family-name> , ]* <family-name>
Value: <uri>? <color> [ / <color> ]?
Value: <uri> || <color>
Value: inset? && [ <length>{2,4} && <color>? ]
付録G.2節で説明するように、コンポーネント値はトークン単位で指定される。expr
(訳注:Unix系OSのコマンド)製作物のコンポーネントにおいてトークン間の空白を許可するように、空白はプロパティ値のトークン間に出現してもよい。
注:多くの場合、空白は実際にはトークン同士を区別するために、トークン間に必要とされるだろう。たとえば、値'1em2em'は、数字'1'と無効な単位識別子'em2em'とともに、単一のDIMEN
トークンとして構文解析されるだろう。この場合、2つの長さ'1em'と'2em'として構文解析されるよう空白は'2'の前に必要になるだろう。
この部分は、プロパティの初期値を規定する。スタイルシートの指定値、継承値、初期値の相互関係についての情報はカスケードの節を参照のこと。
この部分は、プロパティが適用される要素を示す。すべての要素は、全プロパティを所有しているとみなされるが、一部のプロパティはある要素のタイプでレンダリングの効果はない。たとえば、'clear'プロパティはブロックレベル要素にのみ作用する。
この部分は、プロパティ値が先祖要素から継承されるかどうかを示す。スタイルシートの指定値、継承値、初期値の相互関係についての情報はカスケードの節を参照のこと。
この部分は、プロパティにパーセント値が現れた場合、どのように解釈すべきかを示す。ここに"利用不可"が登場する場合、プロパティはパーセント値を受け入れないことを意味する。
この部分は、プロパティが適用されるメディアグループを示す。メディアグループに関する情報は非規範的である。
この部分は、プロパティの算出値を説明する。この定義がどのように使用されるかについては算出値の節を参照のこと。
プロパティの一部には略式プロパティが存在する。これは、著者が複数のプロパティ値を1つのプロパティで指定できることを意味する。
たとえば、'font'プロパティは'font-style'、'font-variant'、'font-weight'、'font-size'、'line-height'、'font-family'を一度にそろって設定できる略式プロパティである。
値が略式プロパティから省略された場合、各"欠落した"プロパティは初期値が割り当てられる(カスケードの節を参照)。
この例の複数のスタイル規則は:
h1 { font-weight: bold; font-size: 12pt; line-height: 14pt; font-family: Helvetica; font-variant: normal; font-style: normal; }
1つの略式プロパティで書いてもよい:
h1 { font: bold 12pt/14pt Helvetica }
この例において、'font-variant'と'font-style'は初期値を取る。
不正な使用法を説明する例はすべて、明確に"不正な例"とマークされている。
DOCTYPE宣言のないHTMLはHTML 4.01 Strict DTDに適合するSGML文書の断片である[HTML4]。他のHTMLの例は、例で指定されたDTDに適合している。
すべての注は参考情報にすぎない。
例と注は仕様とCSSユーザーエージェントのためにHTMLソースでマークされており、これらを特別な形で表示するだろう。
仕様の電子版においてほとんどの画像は、画像が何を表しているかの"長い説明"を添付している。長い説明へのリンクは画像のあとに"[説明]"を用いて示す。
画像および長い説明は参考情報にすぎない。
この節は非規範的である。
CSS 2.2は、CSS2およびCSS 2.1に基づく。CSS2およびCSS 2.1に貢献した人々に対するacknowledgments section of CSS2およびacknowledgments section of CSS 2.1を参照のこと。
我々はwww-styleメーリングリスト上の提供とフィードバックを通じて、この仕様の作成で我々を助けた、次の方々に感謝したい:TBD。
加えて、我々はTBDに特別な感謝を述べたい。
テストスイートを支援した次の方々にも心から感謝する:TBD…そして、CSS1テストスイートのすべての貢献者。