CSS Snapshot 2023

W3C Group Note,

More details about this document
This version:
https://www.w3.org/TR/2023/NOTE-css-2023-20231207/
Latest published version:
https://www.w3.org/TR/css-2023/
Editor's Draft:
https://drafts.csswg.org/css-2023/
History:
https://www.w3.org/standards/history/css-2023
Feedback:
CSSWG Issues Repository
Editors:
Tab Atkins Jr. (Google)
Elika J. Etemad / fantasai (Apple)
Florian Rivoal (Invited Expert)
Chris Lilley (W3C)
Suggest an Edit for this Spec:
GitHub Editor

概要

この文書は、2023年現在でカスケーディングスタイルシート(CSS)の現在の状態を総合して形成する、1つの定義すべての仕様を同時にまとめます。この定義はウェブブラウザーの普及率でなく、仕様の安定性によるモジュールを含むため、主な対象読者は、CSS著者でなくCSSの実装者になります。

CSSは、画面で、紙でなど(HTMLやXMLなどの)構造化文書のレンダリングを記述するための言語です。

この文書の位置付け

この節は、公開時点におけるこの文書のステータスについて説明します。W3Cが現在公開しているリストとテクニカルレポートの最新版は、W3C technical reports index at https://www.w3.org/TR/で見つけることができます。

この文書はNote trackを利用してGroup NoteとしてCSS Working Groupによって作成されました。Group Noteは、W3Cまたはそのメンバーによって承認されていません。

タイトルにスペックコード“css-2023”を含め、 “[css-2023]…コメントの概要…”のように、GitHubにイシューを提出してフィードバックを送信してください(推奨)。 すべてのイシューとコメントはアーカイブされています。 または、フィードバックを(アーカイブされた)公開メーリングリストwww-style@w3.orgに送信することもできます。

この文書は、2023年11月3日のW3C Process Documentによって管理されます。

2020年9月15日のW3C 特許ポリシーには、この文書に関するライセンス要件やコミットメントは含まれていません。

この文書は、2023年時点のCSSの状態を表します。

1. 概論

最初のCSS仕様が公開されたときに、CSSのすべては、CSSレベル1を定義した1つの文書に含まれていました。CSSレベル2はまた、複数の章からなる単独の文書によって定義されていました。しかし、レベル2を超えるCSSに対して、CSSワーキンググループは、単一のモノリシックな仕様​を定義するよりもむしろ、各モジュールがCSSのある部分を定義することで、モジュール式のアプローチを採用することにしました。これは、より管理しやすい塊に仕様を分割し、CSSへのより直接的で、漸進的な改善を可能にします。

種々のCSSモジュールは安定性の異なるレベルにあるため、CSSワーキンググループは、2023年現在でカスケーディングスタイルシートの現在の範囲と状態を定義するために、このプロファイルを公開することを選択しました。

1.1. CSSとは?

カスケーディングスタイルシート(Cascading Style Sheets (CSS))
CSSはスタイルシートを記述するための言語であり、さまざまなメディアでの構造化文書(HTMLやXMLなど)のレンダリングを記述するように設計されています。CSS は、ソース文書のプレゼンテーションを記述するために使用され、たいてい、その文書言語によって表現される基本的なセマンティックスを変更しません。
スタイルシート(Style sheet)
文書のプレゼンテーションを指定する一連のルール。スタイルシートは著者によって書かれ、ユーザーエージェントによって解釈されて、文書がユーザーに提示されます。
ソース文書(Source document)
1つ以上のスタイルシートが参照する文書。ソース文書の構造とセマンティックスは、文書言語(HTML、XHTML、SVGなど)を使用してエンコードされます。
著者(Author)
著者とは、文書および関連するスタイルシートを記述する人です。オーサリングツール(authoring tool) とは、スタイルシートを生成するユーザーエージェントです。
ユーザー(User)
ユーザーとは、文書を見る、聞く、または使用するためにユーザーエージェントと対話する人です。
ユーザーエージェント(User Agent (UA))
ユーザーエージェントは、ユーザーに代わって文書とその文書に関連付けられたスタイルシートを解釈するプログラムです。ユーザーエージェントは、文書を表示したり、音声読み上げしたり、印刷したり、別のファイル形式に変換したりしてもよいです。CSS仕様の目的上、ユーザーエージェントは、これらCSSの仕様で定義されているカスケーディングスタイルシートをサポートし、解釈するものです。

1.2. 背景:W3CプロセスとCSS

この節は非規範的です。

W3Cプロセスにおいて、勧告トラック文書は以下にまとめられる、安定性の3つのレベルを通過します:

草案(Working Draft: WD)

これは、W3C仕様の設計段階です。ワーキンググループは、内部および外部のフィードバックに応えて仕様を繰り返し発行します。

最初の公式作業草案は、「最初の公開草案」(First Public Working Draft: FPWD)に指定されます。CSSワーキンググループにおいて、FPWDの発行は、ワーキンググループ全体が、編集者草案で大まかに調べられ提案されたように、モジュールで作業することに合意したことを示します。

次の段階への移行は時に「最終作業草案」(Last Call Working Draft: LCWD)段階と呼ばれます。一旦我々がすべての既知の問題を解決してCSSワーキンググループは作業草案を移行し、テストの構築と実装からフィードバックなしにさらにプロセスを進めることができません。

この「コメントに対するラストコール」は、任意の未解決の問題を報告するための期限を設定し、入ってくるフィードバックを特別に追跡して対処することをワーキンググループに要求します。コメント追跡文書は、コメントの処置(Disposition of Comments: DoC)になります。これは、広いレビューと支持を実証するために、ディレクターの承認に対する更新された草案と一緒に提出されます。

勧告候補(Candidate Recommendation: CR)
これは、W3C仕様のテスト段階です。とりわけこの段階は、仕様をテストするために試験と実装を使用するということを意味します。実装をテストすることが目的ではありません。このプロセスは多くの場合、仕様についてより多くの問題を明らかにするので、勧告候補は実装とテストのフィードバックに応じて時間をかけて変化させます。もっとも通常は設計段階(草案)の間よりも少なくなります。

各機能の2つの正しい、独立している実装の実証は、勧告候補を終了するのに必要なので、この段階でワーキンググループはテストスイートを作成して実装のレポートを生成します。

次の段階への移行は、「勧告案」(Proposed Recommendation: PR)です。この段階の間にW3C諮問委員会は、勧告への移行を承認しなければなりません。

勧告(Recommendation: REC)
これは、W3C仕様の完成した状態であり、メンテナンス段階を表します。この時点で草案は、エラッタ文書を維持し、仕様に戻るエラッタを組み込む更新版を折に触れて発行します。

編集者草案(Editor’s Draft)は、効果的に編集者自身の作業コピーのライブコピーです。編集者草案は、ワーキンググループのコンセンサスを反映してもしなくてもよく、折に触れて自己矛盾した状態にすることができます。(W3Cでの公開プロセスは時間がかかり面倒なので、編集者草案は通常、仕様に対する最善の(最新の)基準です。公式草案が定期的に最新でありそして編集者草案がスクラッチスペースとしての本来の機能に戻ることができるように、試みは発行の衝突を低減するために現在進行中です。)

2. CSS仕様の分類

すべてのCSSモジュール、安定か進行中、およびモジュールのステータスのリストは、CSS Current Work pageで見つけることができます。

2.1. Cascading Style Sheets (CSS) — 公式の定義

このプロファイルは、我々が安定性を検討し、かつ我々がその安定性を保証する十分な実装経験を持つ仕様のみが含まれます。

注:これは、CSSデスクトップブラウザーのプロファイルであることを意図しません。このプロファイルに含まれるものは、機能の安定性にのみ基づき、予想される用途やウェブブラウザーの採用に基づきません。このプロファイルは、最も完全な形でCSSを定義します。

2023年現在で、カスケーディングスタイルシート(CSS)は、次の仕様によって定義されます。

CSS Level 2、最新のリビジョン(エラッタを含む)[CSS2]
これは、後の仕様によって上書きされる部分の、CSSの中核を定義します。我々は、CSSの基本的な概念とその設計原理の一部を紹介する、2章を読むことを特に推奨します。
CSS Syntax Level 3 [CSS-SYNTAX-3]
CSS2§4.1、CSS2§4.2、CSS2§4.4、およびCSS2§Gを置き換え、CSSの解析方法を再定義します。
CSS Style Attributes [CSS-STYLE-ATTR]
CSS宣言をマークアップ属性に埋め込むことを可能にする方法を定義します。
Media Queries Level 3 [CSS3-MEDIAQUERIES]
CSS2§7.3を置換し、メディア固有のスタイルに対する構文を拡張します。
CSS Conditional Rules Level 3 [CSS-CONDITIONAL-3]
CSS2§7.2を拡張し、ネストを可能にするために@media規則の定義を更新し、機能サポートクエリーのための@supports規則を導入します。
Selectors Level 3 [SELECTORS-3]
拡張されたセレクターの範囲を定義する、CSS2§5とCSS2§6.4.3を置換します。
CSS Namespaces [CSS3-NAMESPACE]
名前空間接頭辞のセレクターを可能にするための@namespace規則を導入します。
CSS Cascading and Inheritance Level 4 [CSS-CASCADE-4]
CSS2§1.4.3およびCSS2§6、そして[CSS-CASCADE-3]を拡張して置換します。スタイル規則を照合し、すべての要素のすべてのプロパティに値を割り当てる方法を説明します。カスケーディングと継承の方法として、すべての要素のすべてのプロパティに対して値は伝播されます。
CSS Values and Units Level 3 [CSS-VALUES-3]
CSS2§1.4.2.1、CSS2§4.3、およびCSS2§A.2.1-3を置換し、CSSのプロパティ定義構文を定義して単位のセットを拡張します。
CSS Custom Properties for Cascading Variables Module Level 1 [CSS-VARIABLES-1]
すべてのCSSプロパティで受け入れられる新しいプリミティブ値の型と、そのCSSプロパティを定義するためのカスタムプロパティとしてカスケード変数を導入します。
CSS Box Model Level 3 [CSS-BOX-3]
CSS2§8.1, §8.2, §8.3(ただし、§8.3.1は除く)、および§8.4を置換します。
CSS Color Level 4 [CSS-COLOR-4]
CSS2§4.3.6、CSS2§14.1、およびCSS2§18.2を拡張して置き換え、[CSS-COLOR-3]も拡張して置き換え、sRGBを超える色空間の拡張範囲、拡張された色値、および色のCSS Object Model拡張を導入します。また、opacityプロパティを定義します。
CSS Backgrounds and Borders Level 3 [CSS-BACKGROUNDS-3]
CSS2§8.5およびCSS2§14.2を拡張して置き換え、層状の背景画像、画像のボーダー、ドロップシャドウなどの背景と境界線をより細かく制御できるようにします。
CSS Images Level 3 [CSS-IMAGES-3]
外部2次元画像値タイプを再定義して組み込み、ネイティブ2次元グラデーションを導入し、置換要素のサイズ設定とレンダリングのための追加のコントロールを追加します。
CSS Fonts Level 3 [CSS-FONTS-3]
CSS2§15を拡張して置き換え、フォントの選択と機能の選択をより細かく制御できるようにします。
CSS Writing Modes Level 3 [CSS-WRITING-MODES-3]
左から右(たとえば、ラテン語またはインド語)、右から左(たとえば、ヘブライ語またはアラビア語)、双方向(たとえば、ラテン語およびアラビア語の混合)および縦(たとえば、アジアの文字)など、さまざまな国際的な書字モードのためのCSSサポートを定義します。CSS2§8.6および§9.10を置換して拡張します。
CSS Multi-column Layout Level 1 [CSS-MULTICOL-1]
CSSレイアウトに多段組みのフローを導入します。
CSS Flexible Box Module Level 1 [CSS-FLEXBOX-1]
CSSに柔軟な直線レイアウトモデルを導入します。
CSS User Interface Module Level 3 [CSS-UI-3]
CSS2§18.1とCSS2§18.4を拡張して置き換え、cursoroutline、そしてさらにユーザーインターフェイスを強化する複数の新しいCSSの機能を定義します。
CSS Containment Module Level 1 [CSS-CONTAIN-1]
containプロパティを導入します。これは、うまく使用されたときにユーザーエージェントによる大幅な最適化を可能にするために、要素のサブツリーの独立したCSS処理を強制するものです。
CSS Transforms Level 1 [CSS-TRANSFORMS-1]
CSSに座標ベースのグラフィカル変換を導入します。
CSS Compositing and Blending Level 1 [COMPOSITING]
オーバーレイされたコンテンツの合成や混合を定義し、それらのモードを制御するための機能を導入します。
CSS Easing Functions Level 1 [CSS-EASING-1].
ある値の変化率を制御する変換を著者が定義する方法について説明します。このような変換をアニメーションに適用すると、運動量などの物理現象を模倣したアニメーションを作成したり、アニメーションを離散的なステップで移動させてロボットのような動きをさせることができます。
CSS Counter Styles Level 3 [CSS-COUNTER-STYLES-3]
@counter-styleルールを導入します。これにより、著者は、CSSリストマーカーおよび生成コンテンツカウンター[CSS-LISTS-3]で使用する独自のカスタムカウンタースタイルの定義を可能にします。また、CSS2およびCSS2.1に存在するものを含む、一般的なカウンタースタイルのセットを事前定義します。

注:我々は、このスナップショットを形成する仕様に大きな変更を予想しませんが、包含する仕様は、仕様が固まっていることを意味するものではありません。CSSワーキンググループは、仕様で見つかる問題に対処し続けます。実装者は、任意の変更、修正、または明確化に対してwww-styleおよび/またはCSS Working Group Blogを監視すべきです。

2.2. 実装経験が少ないが、かなり安定したモジュール

次のモジュールは、設計作業を完了し、かなり安定していますが、まだ多くのテストと実装経験を受けていません。今後のスナップショットでCSSの公式定義に組み込むことを期待しています。

Media Queries Level 4 [MEDIAQUERIES-4]
構文の拡張、ほとんどのメディアタイプの廃止、新しいメディア機能を導入する、[CSS3-MEDIAQUERIES]を拡張して置き換えます。
CSS Display Module Level 3 [CSS-DISPLAY-3]
CSS2§9.1.2、§9.2.1(§9.2.1.1ではない)、§9.2.2(§9.2.2.1ではない)、§9.2.3および§9.2.4を置き換え(そして、§9.7を置き換えるための基礎を築きます )、CSS整形ボックスツリーが文書要素ツリーからどのように生成されるかを定義し、それを制御する表示プロパティを定義します。
CSS Writing Modes Level 4 [CSS-WRITING-MODES-4]
[CSS-WRITING-MODES-3]を拡張および置き換えて、縦書きのオプションを追加します。
CSS Fragmentation Module Level 3 [CSS-BREAK-3]
フローをページ、列、または領域に分割し、それを制御するプロパティを定義する断片化モデルについて説明します。 CSS2§13.3を拡張して置き換えます。
CSS Box Alignment Module Level 3 [CSS-ALIGN-3]
さまざまなCSSボックスレイアウトモデル(ブロックレイアウト、テーブルレイアウト、フレックスレイアウト、グリッドレイアウト)でコンテナ内のボックスの配置を制御するプロパティを導入します。
CSS Shapes Module Level 1 [CSS-SHAPES-1]
非矩形を包む形状をもたらすためのフロート(CSS2§9.5))を拡張します。
CSS Text Module Level 3 [CSS-TEXT-3]
§16.2を除くCSS2§16を拡張して置き換え、テキスト操作のプロパティを定義し、それらの処理モデルを指定します。これは、改行、行端揃えと整列、空白の処理、およびテキスト変換を取り扱います。
CSS Text Decoration Level 3 [CSS-TEXT-DECOR-3]
CSS2§16.3を拡張して置き換え、テキスト装飾線をより細かく制御し、テキスト強調マークとテキストシャドウを指定する機能を追加します。
CSS Masking Level 1 [CSS-MASKING-1]
CSS2§11.1.2を置換し、コンテンツの切り抜きやマスキングのより強力な方法を導入します。
CSS Scroll Snap Module Level 1 [CSS-SCROLL-SNAP-1]
「スナップ位置」でのパンとスクロールの動作を制御する機能を含みます。
CSS Speech Module Level 1 [CSS-SPEECH-1]
(非規範的な)音声レンダリングの章を見直し、CSS2§Aを置換します。
CSS Scrollbars Styling Module Level 1 [CSS-SCROLLBARS-1]
スクロールバーの視覚的なスタイルに影響を与えるプロパティを定義し、色と幅のコントロールを導入します。
CSS View Transitions Module Level 1 [CSS-VIEW-TRANSITIONS-1]
View Transition APIと、関連するプロパティおよび疑似要素を定義します。これにより、開発者は、文書の状態の変化を表すアニメーション化された視覚的な遷移を作成できます。

2.3. ラフな相互運用性をもつモジュール

以下のモジュールはラフな相互運用性で広く展開されていますが、それらの詳細は完全に決着がつかないか、十分に指定されておらず、さらにテストとバグ修正が必要です。今後のスナップショットでCSSの公式定義に組み込むことを期待しています。

CSS Transitions Level 1 [CSS-TRANSITIONS-1] およびCSS Animations Level 1 [CSS-ANIMATIONS-1].
CSSプロパティの算出値を時間の経過とともに遷移させるメカニズムを導入します。
CSS Grid Layout Module Level 1 [CSS-GRID-1]
ユーザーインターフェイス設計に最適化された、2次元グリッドベースのレイアウトシステムを導入します。グリッドレイアウトモデルにおいて、グリッドコンテナの子は、定義済みのフレキシブルまたは固定サイズのレイアウトグリッド内の任意のスロットに配置することができます。
CSS Grid Layout Module Level 2 [CSS-GRID-2]
[CSS-GRID-1]を拡張して置き換え、共有グリッドフレームワークでネストされたマークアップを管理するための“サブグリッド”を導入します。
CSS Will Change Level 1 [CSS-WILL-CHANGE-1]
will-changeと呼ばれるパフォーマンスヒントのプロパティを導入します。
Filter Effects Module Level 1 [FILTER-EFFECTS-1]
文書に表示される前に要素のレンダリングを処理する方法として、フィルター効果を導入します。
CSS Font Loading Module Level 3 [CSS-FONT-LOADING-3]
フォントリソースを動的にロードするために使用されるイベントとインターフェイスを導入します。
CSS Box Sizing Level 3 [CSS-SIZING-3]
CSS§10を上書きして拡張し、サイジングプロパティの値集合を拡張し、より正確なサイジング用語を導入し、CSS2で漠然と定義されているさまざまな自動サイジングの概念をより正確かつ詳細に定義します。
CSS Transforms Level 2 [CSS-TRANSFORMS-2]
[CSS-TRANSFORMS-1]をもとにして、3次元変換のための新しい変換関数とプロパティ、および単純な変換のための便利な関数を追加します。
CSS Lists and Counters Module Level 3 [CSS-LISTS-3]
リストカウンターに関連するCSS機能(スタイル設定、配置、および値の操作)が含まれています。
CSS Logical Properties and Values Level 1 [CSS-LOGICAL-1]
物理的な方向と寸法のマッピングではなく、論理的なマッピングをとおしてレイアウトを制御する機能を著者に提供する、論理的なプロパティと値を導入します。[CSS2]で定義されている機能の論理プロパティと値も定義します。これらのプロパティは、対応する物理プロパティの書き込みモードの相対的な同等物です。
CSS Positioned Layout Module Level 3 [CSS-POSITION-3]
CSSの座標ベースの位置決めおよびオフセットスキームを定義します:(相対位置付着位置絶対位置固定位置
Resize Observer [RESIZE-OBSERVER-1]
この仕様は、要素の主要ボックスのサイズ変化を監視するためのAPIについて説明します。
Web Animations [WEB-ANIMATIONS-1]
ウェブページの表示に対する同期と変更のタイミングのモデルを定義します。また、このモデルと対話するためのアプリケーションプログラミングインターフェイスを定義します。
CSS Fonts Module Level 4 [CSS-FONTS-4]
CSS Fonts 3を拡張して置き換え、OpenTypeバリエーションのサポートを含む、フォント選択と機能選択をより細かく制御します。
CSS Color Adjustment Module Level 1 [CSS-COLOR-ADJUST-1]
このモジュールは、ユーザー設定とデバイス出力の最適化を処理するためにユーザーエージェントによる自動色調整のモデルとコントロールを導入します。
CSS Conditional Rules Module Level 4 [CSS-CONDITIONAL-4]
CSS Conditional 3を拡張して、サポートされているセレクターをテストできるようにします。
CSS Cascading and Inheritance Level 5 [CSS-CASCADE-5]
CSS Cascade 4を拡張して、カスケードレイヤーを追加します。

2.4. CSSのレベル

Cascading Style Sheetsは、従来の意味におけるバージョンを持ちません。代わりに、レベルを持ちます。CSSの各レベルは、定義を洗練して機能を追加する、前のレベルに基づきます。各上位レベルの機能セットは、任意の下位レベルのスーパーセットであり、上位レベルで特定の機能を許可される動作は、下位レベルで許可されるもののサブセットです。よってCSSの上位レベルに適合するユーザーエージェントはまた、すべての下位レベルに適合します。

CSS Level 1
CSSワーキンググループは、CSS1仕様が時代遅れであると考えます。CSSレベル1は(プロパティ、値、@規則など)CSS1仕様で定義されるすべての機能として定義されますが、CSS2.1仕様における構文と定義を使用します。CSSスタイル属性は、要素固有のスタイル属性で包含物を定義します。
CSS Level 2
CSS2仕様は技術的にW3C勧告ですが、W3Cが勧告候補の段階を定義する前に、CSS2は勧告段階に移行しました。時間をかけての実装経験とさらなるレビューは、CSS2仕様で多くの問題を表面化させ、既に手に負えないエラッタリストを拡充する代わりに、CSSワーキンググループは、CSS Level 2 Revision 1 (CSS2.1)を定義することにしました。2つの仕様の間に矛盾がある場合にはCSS2.1が最終的な定義を含みます。

CSS2の廃止されたCSS2勧告として正式に安定性の同じレベルでないにもかかわらず、一度CSS2.1が勧告候補になれば効果を持ちます。CSS2.1から削除されたCSS2の機能は、勧告候補の段階にあると考えられますが、これらの多くはCSSレベル3草案にすでに取り入れられているか、将来取り入れられることに注意すべきです。その場合にその仕様が一度勧告候補に到達すれば、CSS2の定義は廃止されます。

CSS2.1仕様CSSレベル2を定義し、CSSスタイル属性仕様は要素固有のスタイル属性での包含物を定義します。

CSS Level 3
CSSレベル3は、CSS2.1の核としてCSS2.1仕様を使用する、CSSレベル2モジュールごとに基づきます。各モジュールは、機能を追加および/またはCSS2.1仕様の一部を置換します。新しいCSSモジュールがCSS2.1仕様と矛盾しないことをCSSワーキンググループは意図します。モジュールは単に機能を追加して、定義を洗練します。各モジュールが完了するように、以前に完了したモジュールに加えるCSS2.1の既存のシステムに埋め込まれます。

これ以降のモジュールレベルは、独立してレベル付けされます。たとえばSelectors Level 4は、CSS Line Module Level 3の前に完了してもよいです。CSSレベル2と同等なものがないモジュールは、レベル1で開始します。CSSレベル2に存在する機能を更新するモジュールは、レベル3で開始します。

CSS Level 4以降
CSSレベル4はありません。独立したモジュールはレベル4以降に到達できますが、CSS言語にはレベルがありません。(用語としての「CSSレベル3」は、以前のモノリシックバージョンからレベルを区別するためにのみ使用されます。)

2.5. CSSプロファイル

すべての実装が、CSSで定義されるすべての機能を実装するとは限りません。

これまで、ワーキンググループは、さまざまなクラスのユーザーエージェントがサポートする予定のCSSの最小サブセットを定義するための、いくつかのプロファイルを公開しました。

ワーキンググループは効果的で有用なものと判断せず、以前定義されたプロファイルは維持されていないため、この作業は中止されました。

注:たとえCSSのサブセットが公式プロファイルであっても、CSSの部分的な実装は、部分的実装のための前方互換構文解析規則に従わなければなりません。

3. CSSの責任ある実装に対する要求

以下の節は、現在と将来の相互運用性を促進するような方法で、責任を持ってCSSを実装するための複数の適合性要件を定義します。

3.1. 部分的実装

著者がフォールバックの値を割り当てるための上位互換の解析規則を利用することができるようにするために、CSSレンダラは任意の@規則、プロパティ、プロパティの値、キーワード、その他レンダラが使用可能なサポートのレベルがない構文要素を、無効(そして必要に応じて無視)として扱わなければなりません。特に、ユーザーエージェントはある1つの複数値プロパティ宣言において非サポートのコンポーネントの値を無視し、かつサポートされる値を選択的に履行してはなりません。任意の値が無効と見なされる(サポートされない値はそうでなければならない)場合、CSSは宣言全体が無視される必要があります。

3.2. 不安定な実装とプロパティ機能

将来の安定したCSS機能との衝突を避けるために、CSSワーキンググループは、不安定な機能とCSSへの独自拡張の実装に対する次のベストプラクティスを推奨します。

3.2.1. 実験および不安定な機能

W3C仕様書に記載されるが、相互運用可能でない不安定な機能の実装は、一般的使用に対して広く公開されるべきではありませんが、コントロールされた環境で実験的使用、限定的に公開されてもよいです。

なぜ? 私たちは、機能を実験してフィードバックを与えることを著者と実装者の両方を可能にしたいが、量産ウェブサイトで著者がCSS機能に依存することを防止し、かつ後で変更されるかもしれない特定の構文または動作を誤って「ロックイン」することから著者を防止します。
たとえば、ユーザーエージェントは、隠し設定フラグの裏側で、特定のテストパートナーに対してのみ有効なスイッチの裏側で、または依存した使用を制限する他の手段を通じて、ベータまたは他のテスト段階のビルドを通じて実験のために不安定な機能を公開することができます。

あるCSS機能の仕様がW3Cプロセスにおける勧告候補(CR)の段階に達するまで、そのCSS機能は不安定であると考えられます。例外的なケースとして、CSSWGは追加で、公式に記録される決議により、広い使用のために公開しても安全と考えられるセットにCR前の機能を追加するかもしれません。See § 4 Safe to Release pre-CR Exceptions.

注:しばらくの間で変更されていないCR前の仕様は通常安定版よりも時代遅れであるので、ベンダーは、WGに明示的に相談すべきであり、かつこの点についての仮定を行うべきではありません。

3.2.2. 所有者と非標準機能

将来のCSS機能との衝突を避けるために、CSS2.1仕様は、CSSの独占かつ実験的な拡張のための接頭辞構文 [CSS21]を予約します。あるCSS機能が、単一ベンダーのユーザーエージェントにのみアクセス可能な閉じた環境において使用を意図される場合、独自拡張です。ユーザーエージェントは、ベンダー接頭辞構文を通してのみそのような独自拡張をサポートすべきであり、World Wide Webのようなオープンな(マルチユーザーエージェント)環境に独自拡張を公開すべきではありません。

なぜ? 接頭辞の要件は、標準CSSへの将来の追加と競合することなく閉じた環境における特殊な機能の出荷を可能にします。オープン系への公開の制限は、誤って公衆CSS環境に標準化されない拡張に依存させることを防ぐものです。
たとえば、FirefoxのXULベースUI、AppleのiTunesのUI、MicrosoftのユニバーサルWindowsプラットフォームアプリは、それぞれのユーザーエージェントによって実装されるCSSの拡張を使用します。これらのユーザーエージェントがウェブコンテンツにこれら機能へアクセスすることを可能にしない限り、ユーザーエージェントは、独自拡張に依存するようになるのでそのようなコンテンツに対する機会を提供すべきではありません。

たとえ機能がウェブで最終的に使用されることを意図されても、その機能がまだ標準化されていない場合、依然としてウェブに公開されるべきではありません。

3.2.3. 市場の圧力とデファクトスタンダード

まだ機能が不安定である(すなわち仕様がまだ安定してない)場合、ただし

実装者は、広範なリリースビルドで接頭辞なしの機能を出荷してもよいものです。ラフな相互運用性は、差異があるにも関わらず、主観的判断によって満たされ、実装がかなりの数のユースケースに対する量産ウェブサイトで使用されるのと十分に類似します。

しかし、CSSワーキンググループは依然としてベンダー間の連携を確保するために、および各ベンダーからのCSS専門家による一貫性審査を確実にするために相談しなければならないことに注意してください。特に、詳細は標準レビュープロセスを通して解決されていないため、ラフな相互運用性は依然として、通常エッジケース(またはそれほどエッジでないケース)において痛みを伴う相互運用性の欠如を意味することにも注意してください。

なぜ?標準化を完了する前に3つ以上のブラウザーがある機能を実装しているほどその機能が十分に普及している場合、この条項は出荷する圧力を緩めることを可能にします。機能が既に出回っておりかつサイトが機能に応じて開始している場合、その機能は依然として「実験的」であり、誰の役にも立ちません。他人に接頭辞なしの出荷をさせることは、機能が現在事実上の標準化されたことを認識し、かつクロスプラットフォームなコードを書くことを著者に勧めます。
3.2.3.1. ベンダー接頭辞の不安定な機能

量産リリースでウェブに標準化過程の不安定な機能として公開する場合、実装は機能に対するベンダー接頭辞ありと接頭辞なしの両方の構文をサポートすべきです。機能が安定しており、かつ実装が相互運用可能な動作と一致するように更新される時点で、ベンダー接頭辞構文に対するサポートは削除されるべきです。

なぜ? これは、著者がすべての実装を対象にする接頭辞なしの構文を使用することができるが、必要な場合に、著者が標準またはバグ修正プロセスを通して解決する実装間で互換性の問題を回避するために特定の実装を対象にすることができるよう推奨します。

接頭辞構文のみがサポートされる場合の局面の欠如は、ベンダー接頭辞構文のみが記述されているスタイルシートのリスクを低減します。これは、既存のコンテンツを破壊するより低いリスクとともに、ひとたび機能が安定すればユーザーエージェントベンダーに接頭辞構文を順に引退させることを可能にします。また、その構文に依存によるコンテンツのせいで、他のベンダーの接頭辞をもつ機能をサポートするために一部のベンダーによって折に触れて感じる必要性を低減します。

著者に不安定な機能を促進する人は誰でも、標準の接頭辞のない構文を使用してその機能を文書に記録すべきであり、実装の違いに対処する以外の目的でベンダー接頭辞付きの構文の使用を勧めることは避けるべきです。

3.2.3.2. CSSのオープン性の維持

技術としてCSSのオープンな性質を維持するために、ベンダーは、出荷するすべての機能を他の実装者が自由に実装すること可能にすべきです。この目的のために、ベンダーは、そのような機能の標準化を完了するために仕様編集およびテストするリソースを提供すべきであり、そして機能を出荷する競合他社に他の障害物(たとえば、プラットフォーム依存性、ライセンスの制限)を避けるべきです。

3.3. CRレベル機能の実装

仕様が勧告候補の段階に達すると、実装者は、実装者が仕様に従って正しく実装されることを示すことができる任意の勧告候補レベルの機能の接頭辞のない実装を公開すべきであり、接頭辞付きのその機能の変形を公開すべきではありません。

実装を問わずCSSの相互運用性を確立し維持するために、CSSワーキンググループは、非実験的なCSSレンダラが、任意のCSS機能の接頭辞なしの実装を公開する前に、実装レポート(そして、もし必要なら、実装レポートで使用したテストケース)をW3Cへ提出することを要請します。W3Cへ提出されたテストケースは、CSSワーキンググループによるレビューと修正の対象となります。

テストケースと実装レポートの提出に関する詳細情報は、CSSワーキンググループのウェブサイト(https://www.w3.org/Style/CSS/Test/)にあります。質問は直接public-css-testsuite@w3.orgメーリングリストまで。

4. Safe to Release pre-CR Exceptions

候補勧告に達する前に、以下の機能がCSSワーキンググループによって明示的かつ積極的にパスしています:§ 3.2.1 実験および不安定な機能を参照ください。

候補勧告に達する前に、以下の機能がCSSワーキンググループによって明示的かつ遡及的にパスしています。

5. 索引

以下の節は非規範的です。

5.1. 用語索引

5.2. セレクター索引

5.3. @規則索引

5.4. Property Index

5.5. 値索引

6. 謝辞

§3.2.1実験および不安定な機能の初期草案を作成してくれたFlorian Rivoalに感謝します。

適合性

文書規約

適合性要件は、説明的な表現とRFC 2119用語の組み合わせで表現されます。本文章での標準部分においてキーワード“MUST”、“MUST NOT”、“REQUIRED”、“SHALL”、“SHALL NOT”、“SHOULD”、“SHOULD NOT”、“RECOMMENDED”、“MAY”、“OPTIONAL”はRFC 2119で示されたとおりに解釈されます。しかし、読みやすさのために、これらの単語はこの仕様で大文字のみで出現しません。

この仕様のすべての本文は、明示的に非規範的、例、および注としてマークされた部分を除き、規範的です。[RFC2119]

この仕様の例は、 "たとえば"という言葉で導入されるか、規範的な本文からclass="example"を設定し分離されます。このように:

これは参考情報の一例です。

参考情報の注は“注”で始まり、class="note"を設定し分離されます。このように:

注、これは参考情報の注です。

助言は、特別な注意を喚起するようにスタイル付けされる規範的なセクションであり、<strong class="advisement">とともに他の規範的なテキストとは別に設定されます。このように:ユーザーエージェントは、アクセシブルな代替手段を提供しなければならない。

適合クラス

この仕様の適合クラスには次の3つが定義されます:

スタイルシート
A CSS style sheet.
レンダラー
スタイルシートの意味を解釈し、かつスタイルシートを使って文書を表現するユーザーエージェント
オーサリングツール
スタイルシートを記述するユーザーエージェント

スタイルシートは、このモジュールで定義される構文プロパティを使用するスタイルシートの宣言のすべてが、このモジュールで定義される総称的なCSS文法および個々の文法に従って妥当である場合、この仕様に準拠します。

レンダラは、適切な仕様によって定義されるスタイルシートの解釈に加え、機能を正確にパースしかつ文書を適切な方法でレンダリングすることでこの仕様によって定義されるすべての機能をサポートする場合、この仕様に準拠します。しかし、デバイスの制限によってユーザーエージェントが文書を正確にレンダリングできないことは、ユーザーエージェントを非準拠にしません。(たとえば、ユーザーエージェントはモノクロのモニタで色のレンダリングを要求されません。)

オーサリングツールは、このモジュールにおける機能の総称的なCSS文法および個々の文法に従って構文的に正しいスタイルシートを既述し、かつこのモジュールで説明されるようにスタイルシートの他のすべての適合性要件を満たす場合、この仕様に準拠します。

部分的実装

著者がフォールバックの値を割り当てるための上位互換の解析規則を利用することができるようにするために、CSSレンダラは任意の@規則、プロパティー、プロパティーの値、キーワード、その他レンダラが使用可能なサポートのレベルがない構文要素を、無効(そして必要に応じて無視)として扱わなければならない。特に、ユーザーエージェントはある1つの複数値プロパティー宣言において非サポートのコンポーネントの値を無視し、かつサポートされる値を選択的に履行してはなりません。任意の値が無効と見なされる(サポートされない値はそうでなければならない)場合、CSSは宣言全体が無視される必要があります。

不安定な実装とプロパティ機能

将来の安定したCSS機能との衝突を避けるために、CSSワーキンググループは、不安定な機能とCSSへの独自拡張の実装に対する次のベストプラクティスを推奨します。

非実験的実装

一旦仕様がCandidate Recommendationの段階に達すると、非実験的な実装が可能になり、実装者は、仕様に従って正確に実装されるように明示することができる任意のCR段階の機能の接頭辞なしの実装を公開すべきです。

実装を問わずCSSの相互運用性を確立し維持するために、CSSワーキンググループは、非実験的なCSSレンダラが、任意のCSS機能の接頭辞なしの実装を公開する前に、実装レポート(そして、もし必要なら、実装レポートで使用したテストケース)をW3Cへ提出することを要請します。W3Cへ提出されたテストケースは、CSSワーキンググループによるレビューと修正の対象となります。

テストケースと実装レポートの提出に関する詳細情報は、CSSワーキンググループのウェブサイト(https://www.w3.org/Style/CSS/Test/)にあります。質問は直接public-css-testsuite@w3.orgメーリングリストまで。

参考文献

標準情報

[COMPOSITING]
Rik Cabanier; Nikos Andronikos. Compositing and Blending Level 1. 13 January 2015. CR. URL: https://www.w3.org/TR/compositing-1/
[CSS-BACKGROUNDS-3]
Bert Bos; Elika Etemad; Brad Kemper. CSS Backgrounds and Borders Module Level 3. 14 February 2023. CR. URL: https://www.w3.org/TR/css-backgrounds-3/
[CSS-BOX-3]
Elika Etemad. CSS Box Model Module Level 3. 6 April 2023. REC. URL: https://www.w3.org/TR/css-box-3/
[CSS-CASCADE-4]
Elika Etemad; Tab Atkins Jr.. CSS Cascading and Inheritance Level 4. 13 January 2022. CR. URL: https://www.w3.org/TR/css-cascade-4/
[CSS-COLOR-4]
Tab Atkins Jr.; Chris Lilley; Lea Verou. CSS Color Module Level 4. 1 November 2022. CR. URL: https://www.w3.org/TR/css-color-4/
[CSS-COLOR-5]
Chris Lilley; et al. CSS Color Module Level 5. 28 June 2022. WD. URL: https://www.w3.org/TR/css-color-5/
[CSS-CONDITIONAL-3]
David Baron; Elika Etemad; Chris Lilley. CSS Conditional Rules Module Level 3. 13 January 2022. CR. URL: https://www.w3.org/TR/css-conditional-3/
[CSS-CONTAIN-1]
Tab Atkins Jr.; Florian Rivoal. CSS Containment Module Level 1. 25 October 2022. REC. URL: https://www.w3.org/TR/css-contain-1/
[CSS-CONTAIN-2]
Tab Atkins Jr.; Florian Rivoal; Vladimir Levin. CSS Containment Module Level 2. 17 September 2022. WD. URL: https://www.w3.org/TR/css-contain-2/
[CSS-COUNTER-STYLES-3]
Tab Atkins Jr.. CSS Counter Styles Level 3. 27 July 2021. CR. URL: https://www.w3.org/TR/css-counter-styles-3/
[CSS-DISPLAY-3]
Elika Etemad; Tab Atkins Jr.. CSS Display Module Level 3. 30 March 2023. CR. URL: https://www.w3.org/TR/css-display-3/
[CSS-EASING-1]
Brian Birtles; Dean Jackson; Matt Rakow. CSS Easing Functions Level 1. 13 February 2023. CR. URL: https://www.w3.org/TR/css-easing-1/
[CSS-FLEXBOX-1]
Tab Atkins Jr.; et al. CSS Flexible Box Layout Module Level 1. 19 November 2018. CR. URL: https://www.w3.org/TR/css-flexbox-1/
[CSS-FONTS-3]
John Daggett; Myles Maxfield; Chris Lilley. CSS Fonts Module Level 3. 20 September 2018. REC. URL: https://www.w3.org/TR/css-fonts-3/
[CSS-FONTS-4]
John Daggett; Myles Maxfield; Chris Lilley. CSS Fonts Module Level 4. 21 December 2021. WD. URL: https://www.w3.org/TR/css-fonts-4/
[CSS-IMAGES-3]
Tab Atkins Jr.; Elika Etemad; Lea Verou. CSS Images Module Level 3. 17 December 2020. CR. URL: https://www.w3.org/TR/css-images-3/
[CSS-IMAGES-4]
Tab Atkins Jr.; Elika Etemad; Lea Verou. CSS Images Module Level 4. 17 February 2023. WD. URL: https://www.w3.org/TR/css-images-4/
[CSS-MULTICOL-1]
Florian Rivoal; Rachel Andrew. CSS Multi-column Layout Module Level 1. 12 October 2021. CR. URL: https://www.w3.org/TR/css-multicol-1/
[CSS-POSITION-3]
Elika Etemad; Tab Atkins Jr.. CSS Positioned Layout Module Level 3. 3 April 2023. WD. URL: https://www.w3.org/TR/css-position-3/
[CSS-SIZING-3]
Tab Atkins Jr.; Elika Etemad. CSS Box Sizing Module Level 3. 17 December 2021. WD. URL: https://www.w3.org/TR/css-sizing-3/
[CSS-SIZING-4]
Tab Atkins Jr.; Elika Etemad; Jen Simmons. CSS Box Sizing Module Level 4. 20 May 2021. WD. URL: https://www.w3.org/TR/css-sizing-4/
[CSS-STYLE-ATTR]
Tantek Çelik; Elika Etemad. CSS Style Attributes. 7 November 2013. REC. URL: https://www.w3.org/TR/css-style-attr/
[CSS-SYNTAX-3]
Tab Atkins Jr.; Simon Sapin. CSS Syntax Module Level 3. 24 December 2021. CR. URL: https://www.w3.org/TR/css-syntax-3/
[CSS-TEXT-4]
Elika Etemad; et al. CSS Text Module Level 4. 20 October 2023. WD. URL: https://www.w3.org/TR/css-text-4/
[CSS-TRANSFORMS-1]
Simon Fraser; et al. CSS Transforms Module Level 1. 14 February 2019. CR. URL: https://www.w3.org/TR/css-transforms-1/
[CSS-TRANSFORMS-2]
Tab Atkins Jr.; et al. CSS Transforms Module Level 2. 9 November 2021. WD. URL: https://www.w3.org/TR/css-transforms-2/
[CSS-UI-3]
Tantek Çelik; Florian Rivoal. CSS Basic User Interface Module Level 3 (CSS3 UI). 21 June 2018. REC. URL: https://www.w3.org/TR/css-ui-3/
[CSS-UI-4]
Florian Rivoal. CSS Basic User Interface Module Level 4. 16 March 2021. WD. URL: https://www.w3.org/TR/css-ui-4/
[CSS-VALUES-3]
Tab Atkins Jr.; Elika Etemad. CSS Values and Units Module Level 3. 1 December 2022. CR. URL: https://www.w3.org/TR/css-values-3/
[CSS-VARIABLES-1]
Tab Atkins Jr.. CSS Custom Properties for Cascading Variables Module Level 1. 16 June 2022. CR. URL: https://www.w3.org/TR/css-variables-1/
[CSS-WILL-CHANGE-1]
Tab Atkins Jr.. CSS Will Change Module Level 1. 5 May 2022. CR. URL: https://www.w3.org/TR/css-will-change-1/
[CSS-WRITING-MODES-3]
Elika Etemad; Koji Ishii. CSS Writing Modes Level 3. 10 December 2019. REC. URL: https://www.w3.org/TR/css-writing-modes-3/
[CSS2]
Bert Bos; et al. Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification. 7 June 2011. REC. URL: https://www.w3.org/TR/CSS21/
[CSS3-MEDIAQUERIES]
Florian Rivoal. Media Queries Level 3. 5 April 2022. REC. URL: https://www.w3.org/TR/mediaqueries-3/
[CSS3-NAMESPACE]
Elika Etemad. CSS Namespaces Module Level 3. 20 March 2014. REC. URL: https://www.w3.org/TR/css-namespaces-3/
[RFC2119]
S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. March 1997. Best Current Practice. URL: https://datatracker.ietf.org/doc/html/rfc2119
[SELECTORS-3]
Tantek Çelik; et al. Selectors Level 3. 6 November 2018. REC. URL: https://www.w3.org/TR/selectors-3/
[SELECTORS-4]
Elika Etemad; Tab Atkins Jr.. Selectors Level 4. 11 November 2022. WD. URL: https://www.w3.org/TR/selectors-4/

参考情報

[CSS-ALIGN-3]
Elika Etemad; Tab Atkins Jr.. CSS Box Alignment Module Level 3. 17 February 2023. WD. URL: https://www.w3.org/TR/css-align-3/
[CSS-ANIMATIONS-1]
David Baron; et al. CSS Animations Level 1. 2 March 2023. WD. URL: https://www.w3.org/TR/css-animations-1/
[CSS-BREAK-3]
Rossen Atanassov; Elika Etemad. CSS Fragmentation Module Level 3. 4 December 2018. CR. URL: https://www.w3.org/TR/css-break-3/
[CSS-CASCADE-3]
Elika Etemad; Tab Atkins Jr.. CSS Cascading and Inheritance Level 3. 11 February 2021. REC. URL: https://www.w3.org/TR/css-cascade-3/
[CSS-CASCADE-5]
Elika Etemad; Miriam Suzanne; Tab Atkins Jr.. CSS Cascading and Inheritance Level 5. 13 January 2022. CR. URL: https://www.w3.org/TR/css-cascade-5/
[CSS-COLOR-3]
Tantek Çelik; Chris Lilley; David Baron. CSS Color Module Level 3. 18 January 2022. REC. URL: https://www.w3.org/TR/css-color-3/
[CSS-COLOR-ADJUST-1]
Elika Etemad; et al. CSS Color Adjustment Module Level 1. 14 June 2022. CR. URL: https://www.w3.org/TR/css-color-adjust-1/
[CSS-CONDITIONAL-4]
David Baron; Elika Etemad; Chris Lilley. CSS Conditional Rules Module Level 4. 17 February 2022. CR. URL: https://www.w3.org/TR/css-conditional-4/
[CSS-FONT-LOADING-3]
Tab Atkins Jr.. CSS Font Loading Module Level 3. 6 April 2023. WD. URL: https://www.w3.org/TR/css-font-loading-3/
[CSS-GRID-1]
Tab Atkins Jr.; et al. CSS Grid Layout Module Level 1. 18 December 2020. CR. URL: https://www.w3.org/TR/css-grid-1/
[CSS-GRID-2]
Tab Atkins Jr.; Elika Etemad; Rossen Atanassov. CSS Grid Layout Module Level 2. 18 December 2020. CR. URL: https://www.w3.org/TR/css-grid-2/
[CSS-LISTS-3]
Elika Etemad; Tab Atkins Jr.. CSS Lists and Counters Module Level 3. 17 November 2020. WD. URL: https://www.w3.org/TR/css-lists-3/
[CSS-LOGICAL-1]
Rossen Atanassov; Elika Etemad. CSS Logical Properties and Values Level 1. 27 August 2018. WD. URL: https://www.w3.org/TR/css-logical-1/
[CSS-MASKING-1]
Dirk Schulze; Brian Birtles; Tab Atkins Jr.. CSS Masking Module Level 1. 5 August 2021. CR. URL: https://www.w3.org/TR/css-masking-1/
[CSS-SCROLL-SNAP-1]
Matt Rakow; et al. CSS Scroll Snap Module Level 1. 11 March 2021. CR. URL: https://www.w3.org/TR/css-scroll-snap-1/
[CSS-SCROLLBARS-1]
Tantek Çelik; Rossen Atanassov; Florian Rivoal. CSS Scrollbars Styling Module Level 1. 9 December 2021. CR. URL: https://www.w3.org/TR/css-scrollbars-1/
[CSS-SHAPES-1]
Rossen Atanassov; Alan Stearns. CSS Shapes Module Level 1. 15 November 2022. CR. URL: https://www.w3.org/TR/css-shapes-1/
[CSS-SPEECH-1]
Léonie Watson; Elika Etemad. CSS Speech Module Level 1. 14 February 2023. CR. URL: https://www.w3.org/TR/css-speech-1/
[CSS-TEXT-3]
Elika Etemad; Koji Ishii; Florian Rivoal. CSS Text Module Level 3. 3 September 2023. CR. URL: https://www.w3.org/TR/css-text-3/
[CSS-TEXT-DECOR-3]
Elika Etemad; Koji Ishii. CSS Text Decoration Module Level 3. 5 May 2022. CR. URL: https://www.w3.org/TR/css-text-decor-3/
[CSS-TRANSITIONS-1]
David Baron; et al. CSS Transitions. 11 October 2018. WD. URL: https://www.w3.org/TR/css-transitions-1/
[CSS-VIEW-TRANSITIONS-1]
Tab Atkins Jr.; Jake Archibald; Khushal Sagar. CSS View Transitions Module Level 1. 5 September 2023. CR. URL: https://www.w3.org/TR/css-view-transitions-1/
[CSS-WRITING-MODES-4]
Elika Etemad; Koji Ishii. CSS Writing Modes Level 4. 30 July 2019. CR. URL: https://www.w3.org/TR/css-writing-modes-4/
[FILTER-EFFECTS-1]
Dirk Schulze; Dean Jackson. Filter Effects Module Level 1. 18 December 2018. WD. URL: https://www.w3.org/TR/filter-effects-1/
[MEDIAQUERIES-4]
Florian Rivoal; Tab Atkins Jr.. Media Queries Level 4. 25 December 2021. CR. URL: https://www.w3.org/TR/mediaqueries-4/
[RESIZE-OBSERVER-1]
Aleks Totic; Greg Whitworth. Resize Observer. 11 February 2020. WD. URL: https://www.w3.org/TR/resize-observer-1/
[WEB-ANIMATIONS-1]
Brian Birtles; et al. Web Animations. 5 June 2023. WD. URL: https://www.w3.org/TR/web-animations-1/