目次
CSSコミュニティは、CSS2仕様が1998年に勧告されて以来、CSS2仕様に関して多くの経験を積んできました。CSS2仕様の誤りは、その後2011年の最初の改訂版[CSS21]で修正されましたが、新たな正誤表が必要となりました。
多くの問題は今後のCSS3仕様によって対処されますが、現状はCSS2の実装や相互運用性の妨げとなっています。CSS 2.2仕様はこの状況を以下の方法で改善しようとしています:
したがって、CSS2のスタイルシートが必ずしもCSS 2.2との前方互換性を持つわけではありませんが、CSS 2.2の機能だけを使用したスタイルシートは、現在の準拠したユーザーエージェントでより互換性が保たれ、将来の前方互換性も維持しやすくなります。前方互換性を損なうことは望ましくありませんが、CSS 2.2の改訂による利点は十分価値があると考えています。
CSS 2.2はCSS 2.1およびCSS2を元にしており、これらを置き換えることを目的としています。CSS2の一部はCSS 2.2でも変更されず、一部は変更され、一部は削除されています。削除された部分は将来のCSS3仕様で使用される可能性があります。今後の仕様はCSS 2.2を参照すべきですが、CSS 2.2で削除された機能が必要な場合はCSS2のみその機能に関して参照するか、その機能を含む該当するCSS3モジュールを参照してください。
このセクションは規範的ではありません。
本仕様書はCSSの著者とCSSの実装者、2種類の読者を対象に作成されています。著者が効率的で魅力的、かつアクセシブルな文書を作成するためのツールを提供し、CSSの実装詳細を過度に暴露しないことを目指しています。一方、実装者は準拠したユーザーエージェントの構築に必要な情報をすべて得ることができるはずです。 仕様書は、最初にCSSの一般的な概要を示し、後半に進むにつれてより技術的・具体的な内容となっています。情報への迅速なアクセスのため、総合的な目次、各セクションの冒頭にある個別の目次、索引が電子版および印刷版の両方で容易なナビゲーションを提供します。
仕様書は電子版と印刷版、2つの提示方法を考慮して記述されています。両者はおそらく似ていますが、いくつかの違いがあります。たとえば、印刷版ではリンクは機能しません(当然ながら)、電子版ではページ番号は表示されません。差異がある場合、電子版が文書の正式バージョンとみなされます。
このセクションは規範的ではありません。
仕様書は以下のセクションに分かれています:
各CSSプロパティの定義は、次のような主要情報の要約から始まります:
名前: | property-name |
---|---|
値: | 許容される値および構文 |
初期値: | 初期値 |
適用対象: | このプロパティが適用される要素 |
継承: | プロパティが継承されるかどうか |
パーセンテージ値: | パーセンテージ値の解釈方法 |
メディア: | プロパティが適用されるメディアグループ |
計算値: | 計算値の求め方 |
この部分では、'property-name'という名前のプロパティに対して有効な値の集合を指定します。プロパティ値は1つ以上の構成要素から成り立つことがあります。構成値型は以下の方法で指定されます:
これらの定義中の他の単語は、引用符なしでそのまま記述するキーワードです(例:red)。スラッシュ(/)やコンマ(,)もそのまま記述します。
構成値は次のようにプロパティ値として配置します:
並列は二重アンパサンドより強く、二重アンパサンドは二重バーより強く、二重バーはバーより強いです。したがって、次の行は同じ意味です:
a b | c || d && e f [ a b ] | [ c || [ d && [ e f ]]]
すべての型・キーワード・角括弧付きグループの後には以下の修飾子が付くことがあります:
以下はさまざまな値タイプの例です:
値: N | NW | NE
値: [ <length> | thick | thin ]{1,4}
値: [<family-name> , ]* <family-name>
値: <uri>? <color> [ / <color> ]?
値: <uri> || <color>
値: inset? && [ <length>{2,4} && <color>? ]
構成値は付録G.2で説明されているトークンに基づいて指定されます。文法はexpr
生成規則の構成要素でトークン間の空白を許容するため、プロパティ値のトークン間にも空白を入れることができます。
注:多くの場合、トークン間に空白が必須となる場合があります。例えば、値'1em2em'は'1'という数字と'em2em'という識別子を持つ単一のDIMEN
トークンとして解釈され、これは無効な単位です。この場合、'2'の前に空白を入れることで'1em'と'2em'という2つの長さとして解釈されます。
この部分ではプロパティの初期値を指定します。スタイルシート指定値・継承値・初期値の相互作用についてはカスケードのセクションを参照してください。
この部分ではプロパティが適用される要素を一覧にします。すべての要素はすべてのプロパティを持っていますが、プロパティによっては特定の要素タイプにレンダリング効果を持たない場合があります。例えば、'clear'プロパティはブロックレベル要素のみに影響します。
この部分ではプロパティ値が祖先要素から継承されるかどうかを示します。スタイルシート指定値・継承値・初期値の相互作用についてはカスケードのセクションを参照してください。
この部分ではプロパティ値にパーセンテージが含まれる場合の解釈方法を示します。ここに「N/A」と記載されている場合は、そのプロパティ値にパーセンテージが許容されません。
この部分ではプロパティが適用されるメディアグループを示します。メディアグループに関する情報は規範的でありません。
この部分はプロパティの計算値について説明します。計算値の定義の利用方法については計算値のセクションを参照してください。
一部のプロパティはショートハンドプロパティであり、複数のプロパティ値を一度に指定できます。
例えば、'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'は初期値となります。
誤った使い方を示すすべての例は「ILLEGAL EXAMPLE」と明記されています。
DOCTYPE宣言のないHTML例は、HTML 4.01 Strict DTDに準拠するSGMLテキストエンティティです[HTML4]。他のHTML例は各例で示されたDTDに準拠しています。
すべての注釈は参考情報です。
例や注釈は、仕様書のソースHTML内でマークされており、CSSユーザーエージェントは特別にレンダリングします。
本仕様の電子版のほとんどの画像には、その内容を説明する「詳細説明」が付属しています。詳細説明へのリンクは画像の後ろに「[D]」で示されます。
画像および詳細説明は参考情報です。
このセクションは規範的ではありません。
CSS 2.2はCSS2およびCSS 2.1を元にしています。CSS2への謝辞のセクションおよびCSS 2.1への謝辞のセクションでCSS2およびCSS 2.1に貢献した方々をご覧ください。
www-styleメーリングリストでのご意見やフィードバックを通じて本仕様の作成にご協力いただいた以下の方々に感謝いたします: TBD.
さらに、特別な謝意を次の方々に表します: TBD.
テストスイート作成にご協力いただいた以下の方々にも感謝いたします: TBD …そしてCSS1テストスイートに貢献してくださったすべての方々。