CSS コンテインメント モジュール レベル 1

W3C勧告,

この文書の詳細
この版:
https://www.w3.org/TR/2024/REC-css-contain-1-20240625/
最新公開版:
https://www.w3.org/TR/css-contain-1/
編集者草案:
https://drafts.csswg.org/css-contain-1/
以前の版:
履歴:
https://www.w3.org/standards/history/css-contain-1/
実装レポート:
https://drafts.csswg.org/css-contain-1/implementation-report-2022-09
フィードバック:
CSSWG Issues リポジトリ
編集者:
Tab Atkins (Google)
Florian Rivoal (Bloombergを代表して)
本仕様への編集提案:
GitHub 編集
誤植訂正:
https://www.w3.org/Style/2022/REC-contain-1-20221025-errata.html
テストスイート:
https://wpt.fyi/results/css/css-contain/

概要

この CSS モジュールは、要素のサブツリーがページの残りと独立していることを示す contain プロパティについて説明します。適切に使用すると、ユーザーエージェントは大きな最適化を行うことができます。

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

この文書の状態

このセクションは、この文書が公開された時点での状態を説明します。現在の W3C 公開物の一覧およびこの技術報告書の最新改訂版は、W3C 技術報告書インデックス(https://www.w3.org/TR/)で確認できます。

この文書は CSS ワーキンググループ により、勧告トラック を用いて W3C 勧告として公開されました。 W3C 勧告は、広範な合意形成を経て W3C とそのメンバーにより承認された仕様であり、 作業部会のメンバーからの ロイヤリティフリーの実装許諾 のコミットメントがあります。

フィードバックは GitHub に issue を投稿(推奨)してお送りください。 タイトルに仕様コード「css-contain」を含め、例:「[css-contain] …コメントの要約…」のようにしてください。 すべての issue とコメントは アーカイブ されます。 あるいは、(アーカイブ済みの)公開メーリングリスト www-style@w3.org 宛てに送ることもできます。

この文書は 2023年11月03日 W3C プロセス文書 の下で管理されています。

この文書は W3C 特許ポリシー の下で作成されました。 W3C は、作業部会の成果物に関連して行われた特許開示の 公開リスト を維持しています; そのページには特許を開示するための手順も含まれます。 実際に重要なクレーム(Essential Claim(s))を含むと信じる特許を知っている個人は、W3C 特許ポリシーのセクション6 に従って情報を開示する必要があります。

この文書は CSS ワーキンググループにより、勧告トラック を用いて勧告として公開されました。

W3C は、本仕様をウェブの標準として幅広く展開することを推奨します。

1. はじめに

ウェブサイトを効率的にレンダリングするには、ユーザーエージェントがページのどの部分が表示されているか、 どの部分が現在表示されている領域に影響を与える可能性があるか、 そして無視できるものは何かを検出できることが必要です。

あるサブツリーがページの残りとある程度独立しているかを推測するために使用できる様々なヒューリスティックがありますが、 それらは脆弱であり、ページへの些細な変更が意図せずそのヒューリスティックの検査に失敗させ、 レンダリングが遅いコード経路に陥る原因となることがあります。 また、ヒューリスティックでは検出が困難または不可能なため、分離したい多くの対象があります。

これらの問題を緩和し、 サブツリーをページの残りから強力かつ予測可能に分離できるようにするために、 本仕様では要素のサブツリーが独立していることを示すcontainプロパティを定義します。

1.1. 値の定義

本仕様は、CSS のプロパティ定義慣例[CSS2])に従い、値定義構文[CSS-VALUES-3]から採っています。 本仕様で定義されていない値の型は CSS Values & Units [CSS-VALUES-3] で定義されています。 他の CSS モジュールとの組み合わせにより、これらの値型の定義が拡張されることがあります。

定義内に列挙されたプロパティ固有の値に加えて、 本仕様で定義されたすべてのプロパティはプロパティ値としてCSS-wide keywordsを受け入れます。 可読性のため、これらは明示的に繰り返していません。

2. 強いコンテインメント: contain プロパティ

Name: contain
Value: none | strict | content | [ size || layout || paint ]
Initial: none
Applies to: 下記を参照 below
Inherited: no
Percentages: n/a
Computed value: キーワードのnone、または一つ以上の sizelayoutpaint
Canonical order: 文法に従う
Animation type: アニメーション不可

ユーザーエージェントは、非表示メディアを含むすべてのメディア上でこのプロパティをサポートすることが期待されます。

contain プロパティは、著者が要素とその内容が可能な限り文書ツリーの残りから 独立していることを示すことを可能にします。 これにより、ユーザーエージェントは contain を適切に使用した場合に より強力な最適化を利用できるようになり、 著者は些細な変更によりページが遅いコード経路に陥ることを心配する必要がなくなります。

none
この値はプロパティが効果を持たないことを示します。 要素は通常通りレンダリングされ、コンテインメント効果は適用されません。
strict
この値は size layout paint に計算され、 したがって要素に対してすべての形式のコンテインメントを有効にします。
content
この値は layout paint に計算され、 したがって要素に対して サイズのコンテインメントを除くすべての形式のコンテインメントを有効にします。

注: contain: content は広く適用しても比較的「安全」です; 実際の影響はかなり小さく、ほとんどのコンテンツはその制約に抵触しません。 ただし、サイズのコンテインメント を適用しないため、 要素は依然としてその内容のサイズに応じて応答することができ、これによりレイアウトの無効化が望まれるよりもツリーの上方へ波及することがあります。 可能であれば最大限のコンテインメントを得るために contain: strict を使用してください。

size
この値は要素に対して サイズのコンテインメント を有効にします。 これにより、コンテインメントボックス をその子孫を調べることなくレイアウトできることが保証されます。
layout
この値は要素に対して レイアウトのコンテインメント を有効にします。 これにより、コンテインメントボックス はレイアウト目的において完全に不透明となり、 外部のものが内部のレイアウトに影響を与えられず、その逆も同様です。
paint
この値は要素に対して ペイントのコンテインメント を有効にします。 これにより、コンテインメントボックス の子孫がその境界外に描画されないことが保証され、 要素がオフスクリーンまたは非表示である場合、その子孫も表示されないことが保証されます。

このプロパティは一般にすべての要素(CSS Pseudo-Elements 4 § 4.1 Generated Content Pseudo-elements: ::before and ::after を含む)に適用されますが、 いくつかの種類のコンテインメントは一部の要素に対して効果がない場合があり、 その詳細は § 3 コンテインメントの種類 に記載されています。 さらに、[SVG2] の場合、 contain プロパティは CSS レイアウトボックスを持つsvg 要素にのみ適用されます。

contain はページ上で広く使うと有用で、 特にページが多くの独立した「ウィジェット」を含む場合に効果的です。

例えば、マイクロポスト型のソーシャルネットワークが次のようなマークアップを持っているとします:

<body>
  <aside>...</aside>
  <section>
    <h2>Messages</h2>
    <article>
      Lol, check out this dog: images.example.com/jsK3jkl
    </article>
    <article>
      I had a ham sandwich today. #goodtimes
    </article>
    <article>
      I have political opinions that you need to hear!
    </article></section>
</body>

サイトにはおそらく多数のメッセージが表示されますが、それぞれが独立しており他に影響を与えません。 したがって、各メッセージに contain: content をマークしてユーザーエージェントに伝え、 オフスクリーンのメッセージに対する多くの計算をスキップしてページを最適化できるようにします。 各メッセージのサイズが事前に分かっている場合は、さらに制約を伝えるために contain: strict を適用できます。

さらに、HTML の html または body 要素上の used valuenone 以外である場合、 body 要素から初期包含ブロック、ビューポート、または キャンバス背景 へのプロパティの伝播は無効になります。 特に、次の点に影響します:

注: 初期包含ブロック、ビューポート、または キャンバス背景 への、html 要素自体に設定されたプロパティの伝播は影響を受けません。

3. コンテインメントの種類

要素が受けることのできるいくつかの種類のコンテインメントがあり、 子孫がページの残りに及ぼす影響を様々な方法で制限します。コンテインメントはユーザーエージェントによるより強力な最適化を可能にし、 著者が機能的単位でページを構成するのを助けます。これは、ある変更が文書にどの程度広く影響するかを制限するためです。

新しいプロパティや機構を導入する仕様の著者は、 それらがコンテインメントの各種にどのように影響するかを検討し、 ここに記載されていない効果があれば自分の仕様に含める必要があります。

3.1. サイズのコンテインメント

要素に サイズのコンテインメント を与えると、 その principal boxサイズコンテインメントボックス になり、次の効果を持ちます:

  1. 内在サイズは、要素にコンテンツがないかのように決定され、 sizing as if empty のロジックに従います。

    注: これは min-contentmax-content キーワードの明示的な呼び出しや、 これらの測定に依存する計算(例えば、サイズを含む要素が配置されるグリッドトラックのサイズ決定や、 fit-content sizing がコンテインメントボックスの親にする影響)に影響します。

  2. サイズコンテインメントボックスとそのコンテンツのレイアウトは概念的に2つのフェーズで行われます:

    内容がないかのようにサイズ決定
    usedwidthheight は、通常のボックスのレイアウトを行う場合と同様に決定されますが、 ボックスがコンテンツを持たないものとして扱われます—擬似要素(例:::before::after、または ::marker を含めても同様です)。

    置換要素 は、自然な幅と高さを 0 とし、 自然なアスペクト比を持たないものとして扱われなければなりません。

    注: サイズのコンテインメントは 自然なアスペクト比 のみを抑制するため、 aspect-ratio のように直接その 優先アスペクト比 に影響するプロパティは尊重されます。

    サイズコンテインメントボックスのすべての CSS プロパティは、通常のレイアウト時と同様に考慮されます。 他の仕様が特定の例外を設ける場合があります。

    注: 要素自身の サイズ指定プロパティ が内在サイズを指定している場合でも、 それが必ずしも要素をゼロサイズにするわけではありません: 要素自身に設定されたプロパティは引き続き考慮され、それによって要素が大きくなることがあります。

    固定化された領域内でのレイアウト
    コンテインメントボックス の内容 (擬似要素を含む)は、現在固定されたサイズの コンテインメントボックス に通常通りレイアウトされなければなりません。

    注: サイズのコンテインメント はベースライン整列を抑制しません。 その点については レイアウトのコンテインメント を参照してください。

  3. サイズコンテインメントボックスモノリシック です(参照:CSS Fragmentation 3 § 4.1 Possible Break Points)。

次のマークアップとスタイルの場合、画像は 100px x 100px にサイズ決定されます。 これは aspect-ratio プロパティで設定されたアスペクト比が有効になるためです。
img {
  width: 100px;
  aspect-ratio: 1/1;
  contain: size;
}

<img src="https://www.example.com/300x100.jpg">

もし aspect-ratio プロパティが宣言されていなかった場合、 画像は 100px x 0px になっていたでしょう。これはその 自然なアスペクト比 が抑制され、 自然な高さ が 0 と扱われるためです。

しかし、次のいずれかが真である場合、要素にサイズのコンテインメントを与えても効果はありません:

注: テーブルの内部ボックス(表題を含まないもの)は除外されます。 これはテーブルレイアウトアルゴリズムがボックスをその内流コンテンツより小さくすることを許さないためです。 セルを空としてサイズ決定してから中のコンテンツをサイズを変えずにレイアウトすることは、実質的に未定義の操作です。 widthheight を手動で 0 に設定しても、 コンテンツより小さくすることはできません。 この懸念はテーブルのキャプションには当てはまりません。キャプションは内容と独立した固定サイズを持つことが可能です。

3.1.1. 可能なサイズコンテインメント最適化

この節は規範ではありません。

単体では、サイズコンテインメントは大きな最適化機会を提供しません。 単独での主な利点は、コンテインメントボックスのサイズに基づいてその内容をレイアウトしたいツール("コンテナクエリ" 概念を実装するようなJSライブラリなど)が、 子要素のサイズがコンテインメントボックスのサイズに応答し、それがコンテインメントボックスのサイズの変化を引き起こし、 その結果として子のサイズ決定がさらに変化し、コンテインメントボックスのサイズがさらに変わる、いわゆる「無限ループ」を恐れずに動作できる点です。

しかし、これが レイアウトコンテインメント と組み合わされると、 有効にできる可能性のある最適化には(これらに限定されないが)次のようなものがあります:

  1. コンテインメントボックスの子孫のスタイルや内容が変更されたとき、 DOM ツリーのどの部分が「汚染(dirtied)」されて再レイアウトが必要になり得るかの計算を、 コンテインメントボックスで止めることができます。

  2. ページをレイアウトする際に、 コンテインメントボックスが画面外または遮蔽されている場合、 その内容のレイアウト(つまり「固定化領域内でのレイアウト」)を遅延させたり、優先度を下げて実行したりできます。

3.2. レイアウトコンテインメント

要素に レイアウトコンテインメント を与えると、 その principal boxレイアウトコンテインメントボックス となり、次の効果を持ちます:

  1. レイアウトコンテインメントボックスは、独立したフォーマッティングコンテキストを確立します。

  2. もしある フラグメンテーションコンテナ が含まれる フラグメンテーションコンテキスト の少なくとも一つが レイアウトコンテインメント を持つか、 あるいはそのフラグメンテーションコンテキストの少なくとも一つのフラグメンテーションコンテナが レイアウトコンテインメントボックスの子孫であり、 同じフラグメンテーションコンテキストの少なくとも一つの以後のフラグメンテーションコンテナが 同じレイアウトコンテインメントを持つ要素の子孫でない場合、 最初の(フラグメンテーションコンテナであるか、またはフラグメンテーションコンテナの祖先である)最初のレイアウトコンテインメントボックスは 残りの断片化フローを「閉じ込める(trap)」必要があります: 断片化はそのレイアウトコンテインメントの境界を越えて続行してはならず、 最初のレイアウトコンテインメント境界内の最後のフラグメンテーションコンテナは、 そのフラグメンテーションコンテキスト内で最後のフラグメンテーションコンテナであるかのように扱われます。

    もしフラグメンテーションコンテキスト内の以後の フラグメンテーションコンテナ が 断片化フローにさらにコンテンツが残っている場合にのみ生成されるなら、それらは生成されません。 もしそれらが生成されることが前提となる場合は、 それらはフラグメンテーションコンテキストの一部として残りますが、 断片化フローからは何も受け取りません。

    注: 執筆時点では、この点に影響を受ける安定した仕様はありません。 レイアウトコンテインメントが適用される(がすべてではない)フラグメンテーションコンテナを可能にする仕様が対象です。 これは [CSS-PAGE-3][CSS-MULTICOL-1] のケースではありません。 とはいえ、この要件は、(例:[CSS-REGIONS-1]、::nth-fragment() のような仮想的なセレクタなど) いくつかのメカニズムが検討されているため含まれています。レイアウトコンテインメントが意図する保証は、 そのようなメカニズムがこの規則を順守しない限り実現されません。 [CSS-REGIONS-1] には、レイアウトコンテインメントが リージョンに与える影響の詳細があります。

    <article>Lorem ipsum…</article>
    <div id=a></div>
    <aside>
      <div id=b></div>
      <div id=c></div>
    </aside>
    <aside>
      <div id=d></div>
      <div id=e></div>
    </aside>
    <div id=f></div>
    
    article {flow-into: foo;}
    #a, #b, #c, #d, #e, #f {flow-from: foo;}
    aside {contain: layout}
    

    この [CSS-REGIONS-1] の例では、 コンテンツは #a から #b へ、 #b から #c へ流れます。 しかし #c は最初の レイアウトコンテインメントボックス 内の最後のフラグメンテーションコンテナであるため、 残りのコンテンツを閉じ込め、#d#e#f には何も流れません。

  3. もし overflow プロパティの計算結果が visible または clip(またはその組み合わせ)であれば、 いかなるオーバーフローも インクオーバーフロー として扱われなければなりません。

  4. レイアウトコンテインメントボックスは、絶対位置指定の包含ブロックおよび固定位置指定の包含ブロックを確立します。

  5. レイアウトコンテインメントボックスは、スタッキングコンテキストを作成します。

  6. 強制改ページレイアウトコンテインメントボックス 内で許可されますが、 親への伝播は CSS Fragmentation 3 § 3.1 Breaks Between Boxes に記載されている通常の方法では行われません。

    注: これにより、ボックスとその包含要素の間で強制改ページが発生するという、以前は存在しなかった可能性が導入されます(参照:CSS Fragmentation 3 § 4.1 Possible Break Points)。

  7. vertical-align プロパティ、またはレイアウトコンテインメントボックスのベースラインの位置を 子孫以外の何かに関連付ける必要のある他のプロパティの目的のために、 コンテインメントボックスはベースラインを持たないものとして扱われます。

ただし、要素に レイアウトコンテインメント を与えても、次のいずれかが真であれば効果はありません:

3.2.1. 可能なレイアウトコンテインメント最適化

この節は規範ではありません。

レイアウトコンテインメント により有効にできる可能性のある最適化には(これらに限定されないが)次のようなものがあります:

  1. ページをレイアウトする際に、 別々の コンテインメントボックス の内容を並列にレイアウトできる場合があります。 それらは互いに影響を与えないことが保証されているためです。

  2. ページをレイアウトする際に、 コンテインメントボックスが画面外または遮蔽されており、 かつ画面の表示部分のレイアウトがその コンテインメントボックス のサイズに依存しない場合(例えば、コンテインメントボックスがブロックコンテナの終端付近にあり、あなたがブロックコンテナの先頭を見ている場合)、 その コンテインメントボックス の内容のレイアウトを遅延させたり優先度を下げて実行したりできます。

    (これを サイズコンテインメント と組み合わせると、 この最適化はより広く適用可能になります。)

3.3. ペイントコンテインメント

要素に ペイントコンテインメント を与えると、 その principal boxペイントコンテインメントボックス となり、次の効果を持ちます:

  1. 要素の内容(任意の インクスクロール可能なオーバーフロー を含む)は、 パディングエッジ の範囲で ペイントコンテインメントボックス にクリップされなければならず、 角のクリッピング を考慮します。 これはクリップされたコンテンツへアクセスしたり存在を示したりするための仕組みの作成を含みません; また、例えば overflowresize、あるいは text-overflow のような他のプロパティを通じて、 そのような仕組みが作られるのを妨げるものではありません

    注: 本仕様の次のレベル [CSS-CONTAIN-2] はこの効果を オーバーフロクリップエッジ に対して適用するよう精緻化し、 新しい overflow-clip-margin プロパティを考慮します。 overflow-clip-margin をサポートしない実装では、 効果は同一です。

    注: この段落で説明される振る舞いは、 overflow-x: visibleoverflow-x: clip に、 overflow-y: visibleoverflow-y: clip に変更するのと同等であり、 他の overflow-x および overflow-y の値は変更しません。

  2. ペイントコンテインメントボックスは、絶対位置指定の包含ブロックおよび固定位置指定の包含ブロックを確立します。

  3. ペイントコンテインメントボックスは、スタッキングコンテキストを作成します。

  4. ペイントコンテインメントボックスは、独立したフォーマッティングコンテキストを確立します。

ただし、要素に ペイントコンテインメント を与えても、次のいずれかが真であれば効果はありません:

3.3.1. 可能なペイントコンテインメント最適化

この節は規範ではありません。

ペイントコンテインメント により有効にできる可能性のある最適化には(これらに限定されないが)次のようなものがあります:

  1. もし コンテインメントボックス が画面外または遮蔽されている場合、 UA は通常その内容の描画をスキップできます。内容もまた画面外/遮蔽されていることが保証されるためです。

    注: フィルタの blur() のように、ローカルでない効果を持つ描画効果もあります。 ユーザーエージェントはこれらを追跡する必要があり、子孫が変化したときにそのようなフィルタを持つ要素の一部を再描画する必要が生じる可能性があるため、 たとえ子孫が ペイントコンテインメント を持ち通常ならスキップできる場合でも注意が必要です。

  2. クリップされたコンテンツが overflowresize、 または text-overflow のような別の機構を通じてアクセス可能にされない限り、 UA はボックス分ちょうどの「キャンバス」領域を予約できます。 (類似のスクロール可能な状況、例えば overflow: hidden の場合は、 現在クリップされているコンテンツへスクロールできるため、UA はしばしば予測的にややオーバーペイントしておき、 スクロール直後に表示されるものがあるようにすることがあります。)

  3. それらはスタッキングコンテキストであることが保証されるため、 スクロール可能な要素は単一の GPU レイヤーに描画できます。

4. プライバシーに関する考慮事項

本仕様の機能による既知のプライバシー影響はありません。

5. セキュリティに関する考慮事項

本仕様の機能による既知のセキュリティ影響はありません。

他の CSS 仕様と同様に、本仕様は文書のレンダリングに影響を与えますが、 既に他の CSS モジュールを通じて可能であったものや文書のフォーマットに固有のものではない、 誤解を招く形でコンテンツを提示する特別な能力を導入するものではありません。

付録 A. 変更点

本付録は 参考情報 です。

2022年10月25日の勧告からの変更

3件の提案された訂正が正式に規範テキストに組み込まれました:

提案訂正 1:
contain プロパティの計算値の決定方法に小さな調整が行われました: ショートカット値(strictcontent)は、 自身に計算される代わりに対応するキーワードに計算されます。 効果は同一であるため、これにより実装がどの構文で達成されたかを正確に保持する必要がなくなります。 また、最短シリアライズの原則により、この重要でない差異はシリアライズを通じて観測不可能になります。
提案訂正 2:
サイズコンテインメントの説明がやや曖昧であったため、実装者が特定のケースで意図された効果について疑問を持つことがありました。 これを意図した動作を変更することなく明確にするため、より正確な説明に置き換えられました。
提案修正3:
CSSワーキンググループは、HTMLのhtml要素およびbody要素に対するcontainmentの影響を考慮し忘れていました。特に、レガシーな理由により、いくつかのプロパティがbody要素から外側へ伝播する可能性があることを考慮する必要がありました。追加された本文は、この見落としに対応しています。

実装レポートが複数のエンジンでの実装の詳細を示しています。

以前の変更

本仕様への以前の変更の詳細は、前回の公開の Changes セクションで確認できます。

適合性

文書の規約

適合要件は、記述的な断言と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">のように区別されて示されます。例:UAはアクセシブルな代替手段を提供しなければなりません

適合クラス

この仕様への適合は、三つの適合クラスで定義されます:

スタイルシート
CSSスタイルシート
レンダラー
スタイルシートのセマンティクスを解釈し、それを使用する文書をレンダリングするUA
オーサリングツール
スタイルシートを書き出すUA

この仕様に適合するスタイルシートとは、このモジュールで定義された構文を使用するすべての記述が、汎用CSS文法およびこのモジュールで定義された各機能の個別文法に従い有効である場合です。

この仕様に適合するレンダラーとは、スタイルシートを適切な仕様で定義されたとおりに解釈することに加え、この仕様で定義されるすべての機能を正しく解釈し、文書を適切にレンダリングすることです。ただし、デバイスの制限によりユーザーエージェントが文書を正しくレンダリングできない場合でも、それは非適合とはなりません。(例:モノクロモニターで色をレンダリングすることは要求されません。)

この仕様に適合するオーサリングツールとは、汎用CSS文法および本モジュールの各機能の個別文法に従って文法的に正しいスタイルシートを書き出し、このモジュールで記載される他のすべてのスタイルシートの適合要件を満たすことです。

部分的な実装

著者が前方互換性のあるパースルールを活用してフォールバック値を割り当てられるよう、CSSレンダラーはサポートしていないatルール、プロパティ、プロパティ値、キーワード、その他の構文要素は(適宜無視)しなければなりません。特にユーザーエージェントは、サポートされていないコンポーネント値のみを選択的に無視し、単一の複数値プロパティ宣言内でサポートされている値のみを適用してはなりません。もし任意の値が無効(サポートされていない値は無効と見なされるべき)である場合、CSSは宣言全体が無視されることを要求します。

不安定および独自機能の実装

将来の安定したCSS機能との衝突を回避するために、CSSWGはベストプラクティスに従って、不安定な機能独自拡張を実装することを推奨します。

非実験的な実装

仕様がCandidate Recommendation段階に到達すると、非実験的な実装が可能となり、実装者は仕様に従い正しく実装されたことを示せるCRレベルの機能について、プレフィックス無しの実装をリリースするべきです。

CSSの相互運用性を実装間で確立・維持するため、CSSワーキンググループは、非実験的なCSSレンダラーがCSS機能のプレフィックス無し実装をリリースする前に、実装報告書(および必要に応じてその報告書に使用したテストケース)をW3Cに提出することを求めています。W3Cに提出されたテストケースは、CSSワーキンググループによるレビューおよび訂正の対象となります。

テストケースおよび実装報告書の提出に関する詳細は、CSSワーキンググループのウェブサイト https://www.w3.org/Style/CSS/Test/ にて確認できます。質問は public-css-testsuite@w3.org メーリングリストまで。

索引

本仕様で定義されている用語

参照によって定義される用語

参考文献

規範的な参考文献

[CSS-BACKGROUNDS-3]
Elika Etemad; Brad Kemper. CSS Backgrounds and Borders Module Level 3. 2024年3月11日. CR. URL: https://www.w3.org/TR/css-backgrounds-3/
[CSS-BREAK-3]
Rossen Atanassov; Elika Etemad. CSS Fragmentation Module Level 3. 2018年12月4日. CR. URL: https://www.w3.org/TR/css-break-3/
[CSS-CASCADE-5]
Elika Etemad; Miriam Suzanne; Tab Atkins Jr.. CSS Cascading and Inheritance Level 5. 2022年1月13日. CR. URL: https://www.w3.org/TR/css-cascade-5/
[CSS-DISPLAY-3]
Elika Etemad; Tab Atkins Jr.. CSS Display Module Level 3. 2023年3月30日. CR. URL: https://www.w3.org/TR/css-display-3/
[CSS-IMAGES-3]
Tab Atkins Jr.; Elika Etemad; Lea Verou. CSS Images Module Level 3. 2023年12月18日. CR. URL: https://www.w3.org/TR/css-images-3/
[CSS-OVERFLOW-3]
Elika Etemad; Florian Rivoal. CSS Overflow Module Level 3. 2023年3月29日. WD. URL: https://www.w3.org/TR/css-overflow-3/
[CSS-POSITION-3]
Elika Etemad; Tab Atkins Jr.. CSS Positioned Layout Module Level 3. 2023年4月3日. WD. URL: https://www.w3.org/TR/css-position-3/
[CSS-PSEUDO-4]
Daniel Glazman; Elika Etemad; Alan Stearns. CSS Pseudo-Elements Module Level 4. 2022年12月30日. WD. URL: https://www.w3.org/TR/css-pseudo-4/
[CSS-SIZING-3]
Tab Atkins Jr.; Elika Etemad. CSS Box Sizing Module Level 3. 2021年12月17日. WD. URL: https://www.w3.org/TR/css-sizing-3/
[CSS-UI-3]
Tantek Çelik; Florian Rivoal. CSS Basic User Interface Module Level 3 (CSS3 UI). 2018年6月21日. REC. URL: https://www.w3.org/TR/css-ui-3/
[CSS-UI-4]
Florian Rivoal. CSS Basic User Interface Module Level 4. 2021年3月16日. 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. 2024年3月22日. CR. URL: https://www.w3.org/TR/css-values-3/
[CSS-VALUES-4]
Tab Atkins Jr.; Elika Etemad. CSS Values and Units Module Level 4. 2024年3月12日. WD. URL: https://www.w3.org/TR/css-values-4/
[CSS-WRITING-MODES-3]
Elika Etemad; Koji Ishii. CSS Writing Modes Level 3. 2019年12月10日. REC. URL: https://www.w3.org/TR/css-writing-modes-3/
[CSS-WRITING-MODES-4]
Elika Etemad; Koji Ishii. CSS Writing Modes Level 4. 2019年7月30日. CR. URL: https://www.w3.org/TR/css-writing-modes-4/
[CSS2]
Bert Bos; 他. Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification. 2011年6月7日. REC. URL: https://www.w3.org/TR/CSS21/
[HTML]
Anne van Kesteren; 他. HTML Standard. Living Standard. URL: https://html.spec.whatwg.org/multipage/
[RFC2119]
S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. 1997年3月. Best Current Practice. URL: https://datatracker.ietf.org/doc/html/rfc2119
[SVG2]
Amelia Bellamy-Royds; 他. Scalable Vector Graphics (SVG) 2. 2018年10月4日. CR. URL: https://www.w3.org/TR/SVG2/

参考情報

[CSS-CONTAIN-2]
Tab Atkins Jr.; Florian Rivoal; Vladimir Levin. CSS Containment Module Level 2. 2022年9月17日. WD. URL: https://www.w3.org/TR/css-contain-2/
[CSS-GRID-2]
Tab Atkins Jr.; Elika Etemad; Rossen Atanassov. CSS Grid Layout Module Level 2. 2020年12月18日. CR. URL: https://www.w3.org/TR/css-grid-2/
[CSS-MULTICOL-1]
Florian Rivoal; Rachel Andrew. CSS Multi-column Layout Module Level 1. 2024年5月16日. CR. URL: https://www.w3.org/TR/css-multicol-1/
[CSS-OVERFLOW-4]
David Baron; Florian Rivoal; Elika Etemad. CSS Overflow Module Level 4. 2023年3月21日. WD. URL: https://www.w3.org/TR/css-overflow-4/
[CSS-PAGE-3]
Elika Etemad. CSS Paged Media Module Level 3. 2023年9月14日. WD. URL: https://www.w3.org/TR/css-page-3/
[CSS-REGIONS-1]
Rossen Atanassov; Alan Stearns. CSS Regions Module Level 1. 2014年10月9日. WD. URL: https://www.w3.org/TR/css-regions-1/
[CSS-SIZING-4]
Tab Atkins Jr.; Elika Etemad; Jen Simmons. CSS Box Sizing Module Level 4. 2021年5月20日. WD. URL: https://www.w3.org/TR/css-sizing-4/
[FILTER-EFFECTS-1]
Dirk Schulze; Dean Jackson. Filter Effects Module Level 1. 2018年12月18日. WD. URL: https://www.w3.org/TR/filter-effects-1/

プロパティ索引

名前 初期値 適用対象 継承 パーセンテージ アニメーションタイプ 正準順序 算出値
contain none | strict | content | [ size || layout || paint ] none 下記参照 いいえ 該当なし アニメーション不可 文法通り none または size, layout, paint のいずれか一つ以上のキーワード