1 CSS 2.2仕様について

目次

1.1 CSS 2.2とCSS 2の違い

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モジュールを参照してください。

1.2 仕様書の読み方

このセクションは規範的ではありません。

本仕様書はCSSの著者とCSSの実装者、2種類の読者を対象に作成されています。著者が効率的で魅力的、かつアクセシブルな文書を作成するためのツールを提供し、CSSの実装詳細を過度に暴露しないことを目指しています。一方、実装者は準拠したユーザーエージェントの構築に必要な情報をすべて得ることができるはずです。 仕様書は、最初にCSSの一般的な概要を示し、後半に進むにつれてより技術的・具体的な内容となっています。情報への迅速なアクセスのため、総合的な目次、各セクションの冒頭にある個別の目次、索引が電子版および印刷版の両方で容易なナビゲーションを提供します。

仕様書は電子版と印刷版、2つの提示方法を考慮して記述されています。両者はおそらく似ていますが、いくつかの違いがあります。たとえば、印刷版ではリンクは機能しません(当然ながら)、電子版ではページ番号は表示されません。差異がある場合、電子版が文書の正式バージョンとみなされます。

1.3 仕様書の構成

このセクションは規範的ではありません。

仕様書は以下のセクションに分かれています:

第2章:CSS 2.2の概要
概要にはCSS 2.2の簡単なチュートリアルと、CSS 2.2の設計原則の説明が含まれます。
第3章~第18章:CSS 2.2リファレンスマニュアル。
リファレンスマニュアルの大部分はCSS 2.2言語リファレンスで構成されています。このリファレンスでは、CSS 2.2スタイルシートに記述できる内容(構文、プロパティ、プロパティ値)およびユーザーエージェントが準拠を主張するためにこれらのスタイルシートをどのように解釈すべきかを定義しています。
付録:
付録には聴覚プロパティ(規範的でない)、HTML 4用サンプルスタイルシートCSS 2.1からの変更点CSS 2.2の文法、規範的および参考参考文献の一覧、プロパティ一覧総合索引の2つの索引が含まれます。

1.4 表記法

1.4.1 文書言語の要素と属性

1.4.2 CSSプロパティの定義

各CSSプロパティの定義は、次のような主要情報の要約から始まります:

名前: property-name
値: 許容される値および構文
初期値: 初期値
適用対象: このプロパティが適用される要素
継承: プロパティが継承されるかどうか
パーセンテージ値: パーセンテージ値の解釈方法
メディア: プロパティが適用されるメディアグループ
計算値: 計算値の求め方

1.4.2.1

この部分では、'property-name'という名前のプロパティに対して有効な値の集合を指定します。プロパティ値は1つ以上の構成要素から成り立つことがあります。構成値型は以下の方法で指定されます:

  1. キーワード値(例:auto, disc など)
  2. 基本データ型は「<」と「>」で囲みます(例:<length>、<percentage>など)。電子版では、基本データ型ごとにその定義へのリンクがあります。
  3. 同名プロパティと同じ値の範囲を持つ型(例:<'border-width'>、<'background-attachment'>など)。この場合、型名はプロパティ名(一重引用符付き)を「<」と「>」で囲みます(例:<'border-width'>)。この型には'inherit'値は含みません。電子版では、この非終端型も該当するプロパティ定義へのリンクがあります。
  4. プロパティ名と一致しない非終端型。この場合、非終端型名は「<」と「>」で囲みます(例:<border-width>)。<border-width>と<'border-width'>の違いに注意してください。後者は前者を元に定義されています。非終端型の定義は仕様書内で最初に現れる箇所付近に記載されています。電子版では、この型の値も該当する値定義へのリンクがあります。

これらの定義中の他の単語は、引用符なしでそのまま記述するキーワードです(例: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つの長さとして解釈されます。

1.4.2.2 初期値

この部分ではプロパティの初期値を指定します。スタイルシート指定値・継承値・初期値の相互作用についてはカスケードのセクションを参照してください。

1.4.2.3 適用対象

この部分ではプロパティが適用される要素を一覧にします。すべての要素はすべてのプロパティを持っていますが、プロパティによっては特定の要素タイプにレンダリング効果を持たない場合があります。例えば、'clear'プロパティはブロックレベル要素のみに影響します。

1.4.2.4 継承

この部分ではプロパティ値が祖先要素から継承されるかどうかを示します。スタイルシート指定値・継承値・初期値の相互作用についてはカスケードのセクションを参照してください。

1.4.2.5 パーセンテージ値

この部分ではプロパティ値にパーセンテージが含まれる場合の解釈方法を示します。ここに「N/A」と記載されている場合は、そのプロパティ値にパーセンテージが許容されません。

1.4.2.6 メディアグループ

この部分ではプロパティが適用されるメディアグループを示します。メディアグループに関する情報は規範的でありません。

1.4.2.7 計算値

この部分はプロパティの計算値について説明します。計算値の定義の利用方法については計算値のセクションを参照してください。

1.4.3 ショートハンドプロパティ

一部のプロパティはショートハンドプロパティであり、複数のプロパティ値を一度に指定できます。

例えば、'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'は初期値となります。

1.4.4 注釈と例

誤った使い方を示すすべての例は「ILLEGAL EXAMPLE」と明記されています。

DOCTYPE宣言のないHTML例は、HTML 4.01 Strict DTDに準拠するSGMLテキストエンティティです[HTML4]。他のHTML例は各例で示されたDTDに準拠しています。

すべての注釈は参考情報です。

例や注釈は、仕様書のソースHTML内でマークされており、CSSユーザーエージェントは特別にレンダリングします。

1.4.5 画像と詳細説明

本仕様の電子版のほとんどの画像には、その内容を説明する「詳細説明」が付属しています。詳細説明へのリンクは画像の後ろに「[D]」で示されます。

画像および詳細説明は参考情報です。

1.5 謝辞

このセクションは規範的ではありません。

CSS 2.2はCSS2およびCSS 2.1を元にしています。CSS2への謝辞のセクションおよびCSS 2.1への謝辞のセクションでCSS2およびCSS 2.1に貢献した方々をご覧ください。

www-styleメーリングリストでのご意見やフィードバックを通じて本仕様の作成にご協力いただいた以下の方々に感謝いたします: TBD.

さらに、特別な謝意を次の方々に表します: TBD.

テストスイート作成にご協力いただいた以下の方々にも感謝いたします: TBD …そしてCSS1テストスイートに貢献してくださったすべての方々。