CSSギャップ装飾モジュール レベル1

W3C 作業草案

この文書の詳細情報
このバージョン:
https://www.w3.org/TR/2026/WD-css-gaps-1-20260227/
最新公開バージョン:
https://www.w3.org/TR/css-gaps-1/
編集者ドラフト:
https://drafts.csswg.org/css-gaps-1/
以前のバージョン:
履歴:
https://www.w3.org/standards/history/css-gaps-1/
フィードバック:
CSSWG イシューレポジトリ
編集者:
Kevin BabbittMicrosoft
この仕様の編集提案:
GitHub エディター
テストスイート:
https://wpt.fyi/results/css/css-gaps/

要約

このモジュールは、グリッドやフレックスなどのコンテナレイアウト型に、行および列のギャップ装飾を追加する複数のプロパティを導入します。

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

この文書の状態

このセクションは、本書が発行された時点での状態を説明します。 現在のW3C出版物の一覧と、 この技術報告書の最新版は W3C標準および草案インデックスにてご覧いただけます。

この文書はCSSワーキンググループによって 勧告トラックを用いた 作業草案として公開されました。 作業草案として公開されていることは、 W3Cおよびそのメンバーによる承認を意味しません。

これはドラフト文書であり、 今後、他の文書によって更新・置換・廃止される可能性があります。 この文書を進行中の作業以外のものとして引用するのは不適切です。

フィードバックは GitHubでイシューを提出(推奨) することでお送りください。“css-gaps” という仕様コードをタイトルに含めて次のようにしてください: “[css-gaps] …コメント要約…”。 すべてのイシューやコメントはアーカイブされています。 また、フィードバックは(アーカイブ有り)パブリックメーリングリスト www-style@w3.org宛に送ることもできます。

本ドキュメントは 2025年8月18日 W3Cプロセス文書 に従って管理されています。

この文書は W3C特許ポリシーの下で活動するグループによって作成されました。 W3Cは グループ成果物に関連する特許開示の公開リスト を維持しています。 また、そのページには特許開示の方法も記載されています。 個人が実際に特許の存在を知り、 かつその特許が必須クレームを含むと考える場合、 W3C特許ポリシー第6節 に従って情報を開示する必要があります。

1. はじめに

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

CSS Multicol 1 § 4 カラムギャップとルールは、 マルチカラムコンテナ内のカラム間に ルールを描画できるようにします。 この仕様はcolumn-rule-widthcolumn-rule-stylecolumn-rule-color プロパティに基づき、 行方向の同等プロパティの追加、他のコンテナレイアウトへの適用範囲の拡大、 そしてギャップ装飾を描画する位置や方法の高度な制御を可能にします。

1.1. 値の定義

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

各プロパティ固有の値に加え、 この仕様で定義されたすべてのプロパティは、プロパティ値として CSS全域キーワード も受け付けます。 可読性のため、明示的には繰り返し記載していません。

2. ギャップ

CSSの様々なレイアウト( マルチカラムコンテナフレックスコンテナグリッドコンテナグリッドレーンコンテナ など)は、 子ボックスを隣接させたうえで、その間に ギャップガターとも呼ばれる)を配置します。

本仕様においては、ギャップカラムギャップ、および 行ギャップ は、 コンテナの種類に応じて次のように定義されます:

マルチカラムコンテナ
カラム方向では、ギャップカラムギャップ)は、各 カラムボックス 間の ガター を指します(各 マルチカラムライン 内)。 詳細は [CSS-MULTICOL-1] 参照。 行方向では、ギャップ行ギャップ)は、ガターカラムボックスの各行間、column-height により設定)を指します。 詳細は [CSS-MULTICOL-2] も参照。
フレックスコンテナ
主軸 (例:row column-gap を持つ フレックスコンテナ)では、 ギャップカラムギャップ)は単一の フレックスライン内のアイテム間の ガターを指します。

交差軸 (例:row row-gap を持つ フレックスコンテナ)では、 ギャップ行ギャップ)は隣接する フレックスライン間の ガターを指します。

グリッドコンテナ
行ギャップ および カラムギャップは、 それぞれ グリッド行および グリッド列 の間の ガターを指します。 詳細は CSS Grid Layout 1 § 10.1 ガター:row-gap, column-gap, gapプロパティを参照ください。

注: CSS Box Alignment 3 §8.1 行とカラムのガター:row-gapおよびcolumn-gapプロパティに規定されているとおり、 justify-contentalign-content によるアイテム間の追加スペースも ギャップサイズに含まれます。

カラムギャップ(オレンジ色)を持つ マルチカラムコンテナ(spanner要素付き)。 カラムギャップはspannerで途切れることに注意。
`column-wrap: wrap`のマルチカラムコンテナ内のギャップ (カラムギャップはオレンジ色、行ギャップは青色)。 マルチカラムコンテナ内のカラムギャップ行ギャップと重ならない点はflexと同様。
グリッドコンテナのギャップ;カラムギャップはオレンジ色、 行ギャップは青色。 ギャップが重なる部分の色の変化に注目。
フレックスコンテナのギャップ;カラムギャップはオレンジ色、 行ギャップは青色。 グリッドと異なり、フレックスではギャップは重ならない点に注意。

3. ギャップ装飾

ギャップには、 ギャップ装飾 (隣接ボックス間に描画される線などの可視的な区切り)が含まれる場合があります。

ギャップ装飾はスペースを消費しません。 つまり、ギャップ装飾の有無や幅によって 他の配置は変化しません。 ギャップ装飾がそのギャップより幅広い場合は、 隣接ボックスが装飾と重なります。場合によっては装飾がコンテナボックス外側まではみ出すことがあります。

ギャップ装飾は コンテナのボーダーのすぐ上に描画されます。 スクロール可能なコンテナでは、 ボーダーや背景は固定されますが、 装飾はコンテナ内のアイテムと一緒にスクロールする必要があることに注意してください。

3.1. ジオメトリ

ギャップ装飾ギャップ内に 一つ以上のギャップ装飾セグメントとして描画されます。

3.1.1. セグメント端点

セグメント端点とは、 ギャップの中心線上で ギャップ装飾セグメント が開始または終了しうる点のことです。 端点には2種類あります:

ギャップGセグメント端点を作成するには:
  1. ギャップの境界:

    Gの2つの境界中点に以下の端点を作成します:

    ギャップが内容境界まで達する場合、 この端点は該当する内容エッジと一致します。

  2. ギャップ内:

    ギャップ接合部とは、 1つ以上のギャップGに隣接または重なる領域です。 各ギャップ接合部ごとに2つのセグメント端点を作成します:

    この(終了セグメント端点→開始セグメント端点)の順序は、 ギャップ接合部が 1つのトラック/アイテム/カラムの終わりと 別のトラック/アイテム/カラムの始まりに対応していることを反映しています。

以下の例は、セグメント端点の位置を示したものです。 紫色の+開始セグメント端点、 緑色の+終了セグメント端点です。 ギャップ接合部は点線の箱で示されています。
.grid-with-spans {
  display: grid;
  grid-template: repeat(4, 100px) / repeat(4, 100px);
  gap: 20px;
  background: rgb(255 255 128);
}
.grid > * {
  border: 1px dashed black;
}
スパンアイテムがあるグリッドにおけるセグメント端点ギャップ接合部の位置。 各ギャップの境界(コンテナの端と重なる)と、 行と列のギャップが重なる位置それぞれで セグメント端点がend–startの順で作成されます。
.flex {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  width: 500px;
  background: rgb(255 255 128);
}
.flex > * {
  border: 1px dashed black;
}
フレックスコンテナにおけるセグメント端点ギャップ接合部の位置。 カラムギャップはその境界で端点を作成し、一部はコンテナ端と一致 (例:#1と#2、#2と#3の間のギャップの開始点はコンテナの上端と一致し、#7と#8のギャップ終了点はコンテナの下端と一致)。 行ギャップ(フレックスライン間)は、左右端がコンテナ端と一致。 カラムギャップが行ギャップと接する位置では、end-start順に2つの端点が作成される。
.multi-column {
  column-count: 3;
  column-width: 100px;
  column-height: 50px;
  column-wrap: wrap;
  gap: 20px;
  background: rgb(255 255 128);
}

.multi-column > * {
  height: 100px;
  border: 1px dashed black;
}	
マルチカラムコンテナのセグメント端点ギャップ接合部の位置。 カラムギャップ(カラムボックス間)はその境界で端点を作成し、一部はコンテナ端と一致 (最初の2つのカラムギャップ開始点は上端と一致、最後の2つのカラムギャップ終了点は下端と一致)。 行ギャップ(カラムボックスの行間)は左右端で端点を作成し、コンテナ端と一致。 カラムギャップが行ギャップと接する位置では、end–start順で2つの端点が作成される。

3.1.2. ギャップデコレーションセグメント

定義

ギャップデコレーションセグメントは、 始端セグメントエンドポイント終端セグメントエンドポイントをペアにして構成される。 各ギャップギャップデコレーションセグメントの集合体となる。

この節では、ギャップデコレーションセグメント ss = [s.start, s.end] のように表現する。 ここで s.start はセグメントの始端セグメントエンドポイントとなり、 s.end終端セグメントエンドポイントとなる。

UNION(s1, s2) を [s1.start, s2.end] とする。

ギャップデコレーションセグメントは、 その両端点間のすべてのギャップジャンクションについて、 ギャップ両側で、すべての直交するギャップをまたぐアイテムが 存在する場合、 スパニングアイテムによって挟まれている とみなされる。

あるギャップの文脈において、 セグメントエンドポイント ab のペアが 不連続と見なされるのは、 ギャップと同じ幅の線分を a から b まで引いたとき、 その線分がコンテナ内の子アイテムと交差する場合である。

アルゴリズム
与えられたギャップ Gギャップデコレーションセグメントを決定するには:
  1. S を空リストとする。
  2. endpointsG用の セグメントエンドポイントの生成の出力とする。 Gの中心線に沿って始端から終端まで順に並ぶ。

    注: このリストは、始端セグメントエンドポイント終端セグメントエンドポイントが 交互に現れる偶数個の要素で構成され、 始端セグメントエンドポイントから開始することが保証される。

  3. endpointsが空ならSを返す。
  4. break を、そのギャップに適用される column-rule-break または row-rule-break の使用値とする。
  5. breaknoneの場合:
    1. firstendpointsの最初の要素とする。
    2. lastendpointsの最後の要素とする。
    3. ギャップデコレーションセグメント segment = [first, last]を生成する。
    4. オフセットを適用し、 segmentSに追加する。
    5. Sを返す。
  6. 空チェック: endpointsが空ならSを返す。
  7. endpointsの先頭2つから ギャップデコレーションセグメント sを生成し、両方リストから削除する。
  8. sのエンドポイントが不連続なら、 空チェックに戻る。
  9. endpointsが空でない間、以下を繰り返す:
    1. endpointsの先頭2つから ギャップデコレーションセグメント nextを生成(リスト内には残す)。
    2. candidateUNION(s, next)とする。
    3. candidateのエンドポイントが 不連続なら、 このループを終了。
    4. breakintersection かつ、 candidateスパニングアイテムによって挟まれている になっていなければ、このループを終了。
    5. endpointsから先頭2つを取り除く。
    6. sUNION(s, next) に更新する。
  10. オフセットを適用し、sSに追加する。
  11. 空チェックに戻る。
オフセットを適用するには s = [start, end]に対して:
  1. startに該当するrule-insetプロパティの使用値を加える。
  2. endに該当するrule-insetプロパティの使用値を加える。
  3. 調整した [start, end] で sを更新する。
グリッドコンテナ内での ギャップデコレーションセグメント (青と赤の四角)の図。 セグメントは、セグメントエンドポイントのペア間に描かれる。 始端セグメントエンドポイントは紫の十字で、 終端セグメントエンドポイントは 緑の十字で示される。
フレックスコンテナ内での ギャップデコレーションセグメント (青と赤の四角)の図。 セグメントは、セグメントエンドポイントのペア間に描かれる。 始端セグメントエンドポイントは紫の十字で、 終端セグメントエンドポイントは 緑の十字で示される。
マルチカラムコンテナ (column-wrap: wrap) 内での ギャップデコレーションセグメント (青と赤の四角)の図。 セグメントは、セグメントエンドポイントのペア間に描かれる。 始端セグメントエンドポイントは紫の十字で、 終端セグメントエンドポイントは 緑の十字で示される。
フレックスコンテナ内での ギャップデコレーションセグメント (青と赤の四角)の図。 セグメントは、セグメントエンドポイントのペア間に描かれる。 始端セグメントエンドポイントは紫の十字で、 終端セグメントエンドポイントは 緑の十字で示される。
フレックスコンテナ内での ギャップデコレーションセグメント (青と赤の四角)の図。 セグメントは、セグメントエンドポイントのペア間に描かれる。 始端セグメントエンドポイントは紫の十字で、 終端セグメントエンドポイントは 緑の十字で示される。
テスト

3.2. 交差点での分割動作: The column-rule-break, row-rule-break, and rule-break properties

Name: column-rule-break, row-rule-break
Value: none | normal | intersection
Initial: normal
Applies to: grid containers, flex containers, multicol containers, and grid lanes containers
Inherited: no
Percentages: n/a
Computed value: as specified
Canonical order: per grammar
Animation type: discrete

これらのプロパティは、コンテナ内のアイテムによって形成される可視の「T」または「交差」交差点で、与えられたギャップ内のデコレーションをセグメントに分割する際の動作を設定します。 これらの値を適用するための詳細な手順は、ギャップデコレーションセグメントを決定する の手順に示されています。

none
ギャップデコレーションは可視の「T」または「交差」交差点で開始または終了しません。 代わりに、ギャップの一端から他端まで単一の連続したデコレーションが描画されます。
normal
動作はコンテナの種類に依存します。
グリッドコンテナ
ギャップデコレーションは可視の「T」交差点で開始および終了しますが、可視の「交差」交差点では継続します。
フレックスコンテナ
none と同じ動作をします。
マルチカラムコンテナ
column-rule-break では intersection と同じ動作をします。 row-rule-break では none と同じ動作をします。
intersection
ギャップデコレーションは可視の「T」および「交差」交差点で開始および終了します。
テスト
Name: rule-break
Value: <'column-rule-break'>
Initial: see individual properties
Applies to: Same as column-rule-break and row-rule-break
Inherited: see individual properties
Percentages: see individual properties
Computed value: see individual properties
Animation type: see individual properties
Canonical order: per grammar

このショートハンドプロパティは、column-rule-breakrow-rule-break を同じ値に設定します。

テスト

以下の例は、*-rule-break プロパティのさまざまな設定を示します。

.break-normal-grid {
  display: grid;
  grid-template: repeat(4, 100px) / repeat(4, 100px);
  gap: 20px;
  row-rule: 6px solid red;
  column-rule: 6px solid blue;
  rule-break: normal;
}
グリッドにおけるギャップデコレーションの既定の分割動作。 各デコレーションは、ギャップを横断しているアイテムに出会うとそこで止まります。
.break-none-grid {
  display: grid;
  grid-template: repeat(4, 100px) / repeat(4, 100px);
  gap: 20px;
  row-rule: 6px solid red;
  column-rule: 6px solid blue;
  rule-break: none;
}
ブレークのないグリッドのギャップデコレーションギャップデコレーションはグリッド内に配置されたアイテムの「背面」にまで伸びる点に注意してください。
.break-intersection-grid {
  display: grid;
  grid-template: repeat(4, 100px) / repeat(4, 100px);
  gap: 20px;
  row-rule: 6px solid red;
  column-rule: 6px solid blue;
  rule-break: intersection;
}
グリッドのギャップデコレーションで、 反対側にスパンするアイテムによって挟まれていない各ギャップデコレーションセグメント内に含まれるもの。
.break-normal-multicol {
  column-width: 150px;
  column-height: 300px;
  gap: 1em;
  row-rule: 4px solid red;
  column-rule: 4px solid blue;
  rule-break: normal;
}
rule-break を normal に設定したマルチカラムのギャップデコレーション。 列方向では intersection として振る舞い、 行方向では none として振る舞う点に注意してください。
.break-intersection-multicol {
  column-width: 150px;
  column-height: 300px;
  gap: 1em;
  row-rule: 4px solid red;
  column-rule: 4px solid blue;
  rule-break: intersection;
}
rule-break を intersection に設定したマルチカラムのギャップデコレーション
.break-normal-flex {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  row-rule: 6px solid red;
  column-rule: 6px solid blue;
  rule-break: normal;
}
フレックスコンテナにおけるギャップデコレーションの既定の分割動作。

各フレックス行は、アイテム間にそれぞれ独立したギャップを持つ点に注意してください。 これには2つの含意があります:

  1. 隣接するフレックス行のギャップデコレーションは、ギャップが揃っていたとしても互いに独立しています。
  2. none は視覚的には normal と同じ効果を持ちます。
.break-intersection-flex {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  width: 500px;
  gap: 20px;
  row-rule: 6px solid red;
  column-rule: 6px solid blue;
  rule-break: intersection;
}
ギャップデコレーションが、 各ギャップデコレーションセグメント内に収まっているフレックスボックスの例。

3.3. ギャップデコレーションの端点の調整: rule-inset プロパティ

Name: column-rule-edge-inset-start, column-rule-edge-inset-end, column-rule-interior-inset-start, column-rule-interior-inset-end, row-rule-edge-inset-start, row-rule-edge-inset-end, row-rule-interior-inset-start, row-rule-interior-inset-end
Value: <length-percentage>
Initial: 0
Applies to: グリッドコンテナフレックスコンテナマルチカラムコンテナ、およびグリッドレーンコンテナ
Inherited: no
Percentages: 交差ギャップ幅を参照
Computed value: as specified
Canonical order: per grammar
Animation type: by computed value type

これらのプロパティは、ギャップデコレーションの開始点および終了点を、 通常デコレーションの開始・終了位置を決定する セグメントエンドポイントに対しオフセットするために利用できる。

エッジセグメントエンドポイントは、コンテナの内容端で生成されるセグメントエンドポイントである。

インテリアセグメントエンドポイントは、ギャップジャンクションで生成されるセグメントエンドポイントである。

百分率は 交差ギャップ幅 に対して解決されます。定義は以下の通り:

エッジセグメントエンドポイント
交差ギャップ幅0です。
インテリアセグメントエンドポイント
交差ギャップ幅は、同じ次元で該当ギャップジャンクションのサイズです。 (行ギャップの場合は水平方向、列ギャップの場合は垂直方向)

注: 通常は、該当する交差ギャップまたは隣接ギャップの column-gap または row-gap の使用値に、 justify-content または align-content による追加スペースを加えたものとなる。 ただし、ギャップが 複数の区間で重なり交差・隣接する場合は、交差ギャップ幅 はその区間の和集合によって決定される。この例を参照されたい。

column-rule-edge-inset-start および row-rule-edge-inset-start プロパティは 始端セグメントエンドポイントのうち、エッジセグメントエンドポイントに適用されます。 column-rule-interior-inset-start および row-rule-interior-inset-start プロパティは 始端セグメントエンドポイントのうち、インテリアセグメントエンドポイントに適用されます。 これらのプロパティでは、正の値はギャップの軸方向に順方向に、負の値は逆方向にオフセットされます。

column-rule-edge-inset-end および row-rule-edge-inset-end プロパティは 終端セグメントエンドポイントのうち、エッジセグメントエンドポイントに適用されます。 column-rule-interior-inset-end および row-rule-interior-inset-end プロパティは 終端セグメントエンドポイントのうち、インテリアセグメントエンドポイントに適用されます。 これらのプロパティでは、正の値はギャップの軸方向に逆方向に、負の値は順方向にオフセットされます。

テスト

3.3.1. -start および -end ショートハンド

これらのショートハンドにより、作者は均一な非対称デコレーションを実現できます。

.inset-start-8px-end-0px {
  column-rule-inset-start: 8px;
  column-rule-inset-end: 0px;
}
8pxの開始インセットはギャップデコレーションの開始点を引っ込め、 0pxの終了インセットはギャップデコレーションの終了点を内容端に揃える。
Name: column-rule-inset-start, column-rule-inset-end, row-rule-inset-start, row-rule-inset-end
Value: <length-percentage>
Initial: see individual properties
Applies to: 下記各プロパティと同じ:column-rule-edge-inset-startcolumn-rule-interior-inset-startcolumn-rule-edge-inset-endcolumn-rule-interior-inset-endrow-rule-edge-inset-startrow-rule-interior-inset-startrow-rule-edge-inset-endrow-rule-interior-inset-end
Inherited: see individual properties
Percentages: see individual properties
Computed value: see individual properties
Animation type: see individual properties
Canonical order: per grammar

これらのショートハンドプロパティは、対応する -edge- および -interior- プロパティの両方に同じ値を設定します。 たとえば column-rule-inset-startcolumn-rule-edge-inset-startcolumn-rule-interior-inset-start の両方に同じ値を設定します。

Name: rule-inset-start
Value: <'column-rule-inset-start'>
Initial: see individual properties
Applies to: column-rule-inset-start および row-rule-inset-start と同じ
Inherited: see individual properties
Percentages: see individual properties
Computed value: see individual properties
Animation type: see individual properties
Canonical order: per grammar

このショートハンドプロパティは、column-rule-inset-start および row-rule-inset-start を同じ値に設定します。

Name: rule-inset-end
Value: <'column-rule-inset-end'>
Initial: see individual properties
Applies to: column-rule-inset-end および row-rule-inset-end と同じ
Inherited: see individual properties
Percentages: see individual properties
Computed value: see individual properties
Animation type: see individual properties
Canonical order: per grammar

このショートハンドプロパティは、column-rule-inset-end および row-rule-inset-end を同じ値に設定します。

3.3.2. -edge- および -interior- ショートハンド

これらのショートハンドにより、作者は端と内部の交差点で異なる処理を行うことができます。

.inset-edge-0px-interior-negative-5px {
  column-rule-edge-inset: 0px;
  column-rule-interior-inset: -5px;
  column-rule-break: intersection;
}
-5px の内部インセットは内部ギャップデコレーションの端点を 隣接するアイテムの端をわずかに越えて延ばします。0px のエッジインセットは エッジのギャップデコレーションの端点を 内容端に揃えます。
Name: column-rule-edge-inset, column-rule-interior-inset, row-rule-edge-inset, row-rule-interior-inset
Value: <length-percentage> [ <length-percentage> ]?
Initial: see individual properties
Applies to: 下記各プロパティと同じ: column-rule-edge-inset-startcolumn-rule-edge-inset-endcolumn-rule-interior-inset-startcolumn-rule-interior-inset-endrow-rule-edge-inset-startrow-rule-edge-inset-endrow-rule-interior-inset-start、および row-rule-interior-inset-end
Inherited: see individual properties
Percentages: see individual properties
Computed value: see individual properties
Animation type: see individual properties
Canonical order: per grammar

これらのショートハンドは、対応する -start および -end プロパティを設定します。 たとえば、column-rule-edge-insetcolumn-rule-edge-inset-start および column-rule-edge-inset-end を両方設定します。 値が1つの場合は両方に適用され、2つ指定した場合は、1つ目が -start、2つ目が -end に設定されます。

Name: rule-edge-inset
Value: <'column-rule-edge-inset'>
Initial: see individual properties
Applies to: column-rule-edge-inset および row-rule-edge-inset と同じ
Inherited: see individual properties
Percentages: see individual properties
Computed value: see individual properties
Animation type: see individual properties
Canonical order: per grammar

このショートハンドプロパティcolumn-rule-edge-inset および row-rule-edge-inset を同じ値に設定します。

Name: rule-interior-inset
Value: <'column-rule-interior-inset'>
Initial: see individual properties
Applies to: column-rule-interior-inset および row-rule-interior-inset と同じ
Inherited: see individual properties
Percentages: see individual properties
Computed value: see individual properties
Animation type: see individual properties
Canonical order: per grammar

このショートハンドプロパティcolumn-rule-interior-inset および row-rule-interior-inset を同じ値に設定します。

テスト

3.3.3. ユニバーサルショートハンド

これらのショートハンドにより、作者はコンテナ全体で一様な処理を行えます。

.inset-0px {
  column-rule-inset: 0px;
  column-rule-break: intersection;
}
0px のインセットはギャップデコレーションの端を 隣接アイテムに揃えます。
.inset-positive-5px {
  column-rule-inset: 5px;
  column-rule-break: intersection;
}
5px のインセットはギャップデコレーションの端を 隣接アイテムの端より短くします。
.inset-negative-5px {
  column-rule-inset: -5px;
  column-rule-break: intersection;
}
-5px のインセットはギャップデコレーションの端を 隣接アイテムの端をわずかに越えて延ばします。
.inset-negative-50percent {
  column-rule-inset: -50%;
  column-rule-break: intersection;
}
-50% のインセットは各ギャップデコレーションの端を 交差点の中間まで延ばします。 隣接するギャップデコレーションが 「中央で出会って」連続した線となります。 コンテナ端では交差ギャップ幅0となるため、 インセット値-50%0に解決され、 その結果ギャップデコレーションは コンテナの外には広がりません。 (px単位を指定した前の例との違いに注意)
Name: column-rule-inset, row-rule-inset
Value: <'column-rule-edge-inset'> [ / <'column-rule-interior-inset'> ]?
Initial: see individual properties
Applies to: column-rule-edge-insetcolumn-rule-interior-insetrow-rule-edge-insetrow-rule-interior-inset と同じ
Inherited: see individual properties
Percentages: see individual properties
Computed value: see individual properties
Animation type: see individual properties
Canonical order: per grammar

これらのショートハンドは対応するエッジ・内部のstart/end値を設定します。 値の順序は:

edge-start edge-end? [/ interior-start interior-end?]?

省略された値は以下のように補完されます:

  1. 内部値が省略された場合、エッジ値からコピーされます。
  2. end値が省略された場合、対応するstart値からコピーされます。
Name: rule-inset
Value: <'column-rule-inset'>
Initial: see individual properties
Applies to: column-rule-insetおよび row-rule-inset と同じ
Inherited: see individual properties
Percentages: see individual properties
Computed value: see individual properties
Animation type: see individual properties
Canonical order: per grammar

このショートハンドプロパティcolumn-rule-inset および row-rule-inset を同じ値に設定します。

テスト

3.4. ギャップデコレーションの可視性: rule-visibility-items プロパティ

Name: column-rule-visibility-items, row-rule-visibility-items
Value: all | around | between
Initial: all
Applies to: グリッドコンテナマルチカラムコンテナ
Inherited: no
Percentages: n/a
Computed value: as specified
Canonical order: per grammar
Animation type: discrete

これらのプロパティは、空白エリアに隣接するギャップの部分に、 ギャップデコレーションセグメントを描画するかどうかを制御します。

all
隣接するアイテムの有無に関係なく、すべてのギャップセグメントに装飾を描画します。
around
2つの隣接エリアのうち、少なくとも一方にアイテムが配置されている場合、そのギャップセグメントに装飾を描画します。
between
2つの隣接エリアが両方ともアイテムで埋まっている場合、そのギャップセグメントに装飾を描画します。
Name: rule-visibility-items
Value: <'column-rule-visibility-items'>
Initial: see individual properties
Applies to: column-rule-visibility-items および row-rule-visibility-items と同じ
Inherited: see individual properties
Percentages: see individual properties
Computed value: see individual properties
Animation type: see individual properties
Canonical order: per grammar

このショートハンドプロパティは、column-rule-visibility-items および row-rule-visibility-items を同じ値に設定します。

.break-normal-with-all-grid {
  display: grid;
  grid-template: repeat(3, 100px) / repeat(3, 100px);
  gap: 20px;
  row-rule: 6px solid red;
  column-rule: 6px solid blue;
  rule-visibility-items: all;
}
normal ルール分割と all 可視性(デフォルト) のグリッドでのギャップデコレーション。
.break-normal-with-around-grid {
  display: grid;
  grid-template: repeat(3, 100px) / repeat(3, 100px);
  gap: 20px;
  row-rule: 6px solid red;
  column-rule: 6px solid blue;
  rule-visibility-items: around;
}
normal ルール分割と around 可視性 のグリッドでのギャップデコレーション。
.break-normal-with-between-grid {
  display: grid;
  grid-template: repeat(3, 100px) / repeat(3, 100px);
  gap: 20px;
  row-rule: 6px solid red;
  column-rule: 6px solid blue;
  rule-visibility-items: between;
}
normal ルール分割と between 可視性 のグリッドでのギャップデコレーション。
テスト

3.5. ギャップデコレーションの重なり: rule-overlap プロパティ

Name: rule-overlap
Value: row-over-column | column-over-row
Initial: row-over-column
Applies to: グリッドコンテナフレックスコンテナグリッドレーンコンテナ
Inherited: no
Percentages: n/a
Computed value: as specified
Canonical order: per grammar
Animation type: discrete

このプロパティは、重なりあったギャップデコレーションの描画順序を設定します。

row-over-column
行方向のデコレーションが列方向のデコレーションより上に描画されます。
column-over-row
列方向のデコレーションが行方向のデコレーションより上に描画されます。
.row-over-column {
  rule-overlap: row-over-column;
  row-rule: 6px solid red;
  column-rule: 6px solid blue;
}
row-over-column のギャップデコレーション重なり例。
.column-over-row {
  rule-overlap: column-over-row;
  row-rule: 6px solid red;
  column-rule: 6px solid blue;
}
column-over-row のギャップデコレーション重なり例。
テスト

3.6. 断片化

CSS Box Alignment 3 § 8.1 行および列のガター: the row-gap and column-gap properties specifies that gaps disappear where they coincide with a 断片化ブレーク. Because there is no gap in such locations, no ギャップ装飾 is drawn in them either.

テスト

4. 色、スタイル、幅

Property definitions in this section supersede the definitions of properties with the same names in [CSS-MULTICOL-1].

4.1. ギャップ装飾の色: The column-rule-color, row-rule-color, and rule-color properties

名前: column-rule-color, row-rule-color
値: <line-color-list> | <auto-line-color-list>
初期値: currentcolor
適用対象: グリッドコンテナー, フレックスコンテナー, マルチコラムコンテナー, and グリッドレーンコンテナー
継承: no
パーセンテージ: n/a
計算済み値: 指定どおり
正規順序: 文法に従う
アニメーションの種類: 繰り返し可能なリスト。§ 4.7 リスト値の補間を参照してください。
<line-color-list>          = <line-color-or-repeat>#

<auto-line-color-list>     = <line-color-or-repeat>#? ,
                             <auto-repeat-line-color> ,
                             <line-color-or-repeat>#?

<line-color-or-repeat>     = [ <color> | <repeat-line-color> ]

<repeat-line-color>        = repeat( [ <integer [1,∞]> ] , [ <color> ]# )

<auto-repeat-line-color>   = repeat( auto , [ <color> ]# )

These properties set the color of ギャップ装飾.

名前: rule-color
値: <'column-rule-color'>
初期値: 個別のプロパティを参照
適用対象: column-rule-color および row-rule-color と同じ
継承: no
パーセンテージ: 個別のプロパティを参照
計算済み値: 個別のプロパティを参照
アニメーションの種類: 個別のプロパティを参照
正規順序: 文法に従う

This shorthand property sets column-rule-color and row-rule-color to the same value.

テスト

4.2. ギャップ装飾のスタイル: The column-rule-style, row-rule-style, and rule-style プロパティ

Name: column-rule-style, row-rule-style
Value: <line-style-list> | <auto-line-style-list>
Initial: none
Applies to: グリッドコンテナー, フレックス コンテナー, マルチコラムコンテナー, and グリッドレーンコンテナー
Inherited: no
Percentages: n/a
Computed value: 指定どおり
Canonical order: 文法に従う
Animation type: 離散
<line-style-list>          = <line-style-or-repeat>#

<auto-line-style-list>     = <line-style-or-repeat>#? ,
                             <auto-repeat-line-style> ,
                             <line-style-or-repeat>#?

<line-style-or-repeat>     = [ <line-style> | <repeat-line-style> ]

<repeat-line-style>        = repeat( [ <integer [1,∞]> ] , [ <line-style> ]# )

<auto-repeat-line-style>   = repeat( auto , [ <line-style> ]# )

これらのプロパティは ギャップ装飾 のスタイルを設定します。 <line-style> の値は border-style と同様に適用されます。

Name: rule-style
Value: <'column-rule-style'>
Initial: 個別のプロパティを参照
Applies to: column-rule-style および row-rule-style と同じ
Inherited: no
Percentages: 個別のプロパティを参照
Computed value: 個別のプロパティを参照
Animation type: 個別のプロパティを参照
Canonical order: 文法に従う

この 省略プロパティcolumn-rule-stylerow-rule-style を同じ値に設定します。

テスト

4.3. ギャップ装飾の幅: The column-rule-width, row-rule-width, and rule-width プロパティ

Name: column-rule-width, row-rule-width
Value: <line-width-list> | <auto-line-width-list>
Initial: medium
Applies to: グリッドコンテナー, フレックスコンテナー, マルチコラムコンテナー, and グリッドレーンコンテナー
Inherited: no
Percentages: n/a
Computed value: 絶対長さのリスト。border width としてスナップされます
Canonical order: 文法に従う
Animation type: 繰り返し可能なリスト。§ 4.7 リスト値の補間を参照してください。
<line-width-list>          = <line-width-or-repeat>#

<auto-line-width-list>     = <line-width-or-repeat>#? ,
                             <auto-repeat-line-width> ,
                             <line-width-or-repeat>#?

<line-width-or-repeat>     = [ <line-width> | <repeat-line-width> ]

<repeat-line-width>        = repeat( [ <integer [1,∞]> ] , [ <line-width> ]# )

<auto-repeat-line-width>   = repeat( auto , [ <line-width> ]# )

これらのプロパティは ギャップ装飾 の幅を設定します。負の値は許可されません。

Name: rule-width
Value: <'column-rule-width'>
Initial: 個別のプロパティを参照
Applies to: column-rule-width および row-rule-width と同じ
Inherited: no
Percentages: 個別のプロパティを参照
Computed value: 個別のプロパティを参照
Animation type: 個別のプロパティを参照
Canonical order: 文法に従う

この 省略プロパティcolumn-rule-widthrow-rule-width を同じ値に設定します。

テスト

4.4. ギャップ装飾の省略記法: The column-rule, row-rule, and rule properties

Name: column-rule, row-rule
Value: <gap-rule-list> | <gap-auto-rule-list>
Initial: 個別のプロパティを参照
Applies to: 個別のプロパティを参照
Inherited: 個別のプロパティを参照
Percentages: 個別のプロパティを参照
Computed value: 個別のプロパティを参照
Animation type: 個別のプロパティを参照
Canonical order: 文法に従う
<gap-rule-list>        = <gap-rule-or-repeat>#

<gap-auto-rule-list>   = <gap-rule-or-repeat>#? ,
                         <gap-auto-repeat-rule> ,
                         <gap-rule-or-repeat>#?

<gap-rule-or-repeat>   = <gap-rule> | <gap-repeat-rule>

<gap-repeat-rule>      = repeat( <integer [1,∞]> , <gap-rule># )

<gap-auto-repeat-rule> = repeat( auto , <gap-rule># )

<gap-rule>             = <line-width> || <line-style> || <color>

これらの 省略プロパティ は、 column-rule-widthcolumn-rule-style、および column-rule-color の値を設定するか、 それぞれ row-rule-widthrow-rule-style、および row-rule-color の値を設定します。

Name: rule
Value: <'column-rule'>
Initial: 個別のプロパティを参照
Applies to: column-rule および row-rule と同じ
Inherited: no
Percentages: 個別のプロパティを参照
Computed value: 個別のプロパティを参照
Animation type: 個別のプロパティを参照
Canonical order: 文法に従う

この 省略プロパティcolumn-rulerow-rule を同じ値に設定します。

テスト

4.5. 値のリストと repeat() 表記

この節の各プロパティはコンマ区切りの値のリストを受け取ります。 複数の値をこのように設定することで、与えられたコンテナー内で異なる ギャップ装飾 を指定できます。

作者は次のように赤と青の列ルールを交互に指定することができます:
column-rule-width: 1px;
column-rule-style: solid;
column-rule-color: red, blue;

そのようなリストは repeat() 表記を含めることができます。 CSS Grid Layout 1 § 7.2.3 Repeating Rows and Columns: the repeat() notation と同様に、これらの表記は周期的なパターンを示す一連の ギャップ装飾 をより簡潔に記述することを可能にします。

repeat() 構文の一般的な形は、概ね次のとおりです

repeat( [ <integer [1,∞]> | auto ] , <value># )

repeat() の最初の引数は繰り返し回数を指定します。

<integer>
整数リピータを指定します。 整数リピータ は 第2引数の値のリストを展開し、最初の引数で指定された回数だけ繰り返します。
作者は次のように書くことができます:
column-rule-color: gray, red, blue, red, blue, red, blue, gray;
または、次のように短く書くことができ、同じ色の並びを生成します:
column-rule-color: gray, repeat(3, red, blue), gray;
auto
auto リピータを指定します。 auto リピータ は、 リストの他の部分から値が割り当てられないギャップを埋めるために使用されます。 与えられた値のリスト内で repeat() が auto リピータであってよいのは最大で1つです。
前の例の続きとして、作者が最終的なレイアウトで何列になるか分からない場合、次のように書くかもしれません:
column-rule-color: gray, repeat(auto, red, blue), gray;
これにより最初と最後の列のギャップにはグレーの装飾が付き、 間の列のギャップには赤と青の装飾が交互に付きます。

repeat() の第2引数は、その repeat() が出現するプロパティで受け入れられる値の コンマ区切りリストです。

4.6. ギャップへのギャップ装飾値の割り当て

ギャップ装飾は、割り当てされる前に、ガターの折りたたみが適用されます。 ある一組の 折りたたまれたガター はちょうど1つの ギャップ装飾 を消費します; 次の ギャップ装飾 は次のガター(または一組の 折りたたまれたガター)に適用されます。 したがって、折りたたまれたガター は装飾の目的上、単一の ギャップ として扱われます。

ギャップのリスト gaps に対して values のリストを使って ギャップ装飾値を割り当てる 手順:
  1. values 内の任意の 整数リピータ を展開した等価なものに置き換えます。
  2. リストに auto リピータ が含まれていない場合:
    1. values の最初の項目と gaps の最初の項目から開始し、 各値を対応するギャップに割り当てます。 値の数がギャップの数より少ない場合は、 必要に応じて values の最初の項目から繰り返します。
    2. このアルゴリズムを終了します。
  3. valuesauto リピータ が含まれています。 leading countvalues の auto リピータの前の項目数とします。 trailing count を auto リピータの後の項目数とします。
  4. 次のように gaps を分割します:
    1. leading gapsgaps の最初の leading count 項目にします。
    2. trailing gapsgaps の最後の trailing count 項目にし、 ただし leading gaps の項目は除きます。
    3. auto gapsgaps のうち leading gapstrailing gaps のどちらにも属さない項目にします。
  5. leading gaps が空でない場合、 ギャップ装飾値を割り当てるleading gaps に対して、values の最初の leading count 項目を使って行います。
  6. trailing gaps が空でない場合、 ギャップ装飾値を割り当てるtrailing gaps に対して、values の最初の trailing count 項目を使って行います。
  7. auto gaps が空でない場合、 ギャップ装飾値を割り当てるauto gaps に対して、auto リピータ の第2引数にある値のリストを使って行います。
テスト

4.7. リスト値の補間

repeat() の値や、rule-colorrule-width などの値のリストを補間する際、補間は2段階で行われます。

  1. 展開: すべての整数リピータを、その等価な値のリストへ展開します。
  2. リスト補間: 展開されたリストに repeatable list 補間アルゴリズムを適用し、各アイテム同士を補間します。
@keyframes example {
  from { column-rule-width: 10px; }
  to   { column-rule-width: 20px, 40px; }
}
上記の値の補間は、"from" および "to" の値が展開されて同じ長さのリストが作られます:
From:   10px, 10px
At 50%: 15px, 25px
To:     20px, 40px
@keyframes example {
  from { column-rule-width: repeat(2, 5px, 10px); }
  to   { column-rule-width: repeat(2, 15px, 20px); }
}
上記の値の補間は、"from" および "to" の値が展開されて同じ長さのリストが作られます:
From:    5px, 10px,  5px, 10px
At 50%: 10px, 15px, 10px, 15px
To:     15px, 20px, 15px, 20px
@keyframes example {
  from { column-rule-width: repeat(2, 10px, 20px); }
  to   { column-rule-width: 20px; }
}
上記の値の補間は、"from" および "to" の値が展開されて同じ長さのリストが作られます:
From:   10px, 20px, 10px, 20px
At 50%: 15px, 20px, 15px, 20px
To:     20px, 20px, 20px, 20px
@keyframes example {
  from { column-rule-width: repeat(2, 10px, 20px); }
  to   { column-rule-width: 20px, 30px; }
}
上記の値の補間は、"from" および "to" の値が展開されて同じ長さのリストが作られます:
From:   10px, 20px, 10px, 20px
At 50%: 15px, 25px, 15px, 25px
To:     20px, 30px, 20px, 30px

補間するリスト(fromto)のいずれかに auto リピータ が含まれる場合:

  1. from および to を、ギャップ装飾値の割り当てと同様に区分します:
    1. leading valuesauto リピータ の前の値とする。
    2. trailing valuesauto リピータ の後の値とする。
    3. auto valuesauto リピータ 内の値とする。
  2. from と to のどちらか一方のみが auto リピータを含む場合、離散的補間にフォールバックします。
  3. 各区間で整数リピータを展開します。
  4. fromleading valuestoleading values の長さが異なる場合、離散的補間にフォールバックします。 fromtrailing valuestotrailing values の長さが異なる場合も、離散的補間にフォールバックします。
  5. 両方が auto リピータを含み、セグメント長が一致する場合は、各 auto values の値リスト間で repeatable list 補間を適用します。
@keyframes example {
  from { column-rule-width: 10px, repeat(auto, 20px), 30px }
  to   { column-rule-width: 20px, repeat(auto, 40px), 40px }
}
leading values および trailing values の長さが from, to で一致しているため、各セグメントで repeatable list アルゴリズムを適用できます。
From:   10px, repeat(auto, 20px), 30px
At 50%: 15px, repeat(auto, 30px), 35px
To:     20px, repeat(auto, 40px), 40px
@keyframes example {
  from { column-rule-width: 10px, 20px, repeat(auto, 20px), 30px }
  to   { column-rule-width: 20px, 30px, repeat(auto, 40px, 50px), 40px }
}
leading values および trailing values の長さが from, to で一致しているため、各セグメントで repeatable list アルゴリズムを適用できます。
From:   10px, 20px, repeat(auto, 20px, 20px), 30px
At 50%: 15px, 25px, repeat(auto, 30px, 35px), 35px
To:     20px, 30px, repeat(auto, 40px, 50px), 40px
@keyframes example {
  from { column-rule-width: 10px, repeat(auto, 20px) }
  to   { column-rule-width: 20px, 30px, repeat(auto, 40px, 50px) }
}
from の leading values と to の leading values の長さが一致しないため、離散的 補間になります。
@keyframes example {
  from { column-rule-width: 10px, repeat(auto, 20px), 30px }
  to   { column-rule-width: 20px, repeat(auto, 40px), 40px, 50px }
}
from の trailing values と to の trailing values の長さが一致しないため、離散的 補間になります。
@keyframes example {
  from { column-rule-width: 10px, repeat(auto, 20px), 30px }
  to   { column-rule-width: 20px }
}
from だけが auto リピータ を含むため、離散的 補間になります。
テスト

4.8. シリアライズ

column-rulerow-rule、 および rule の 略式プロパティは、ロングハンドプロパティが リピータ整列されている場合に限り、そのロングハンドから シリアライズされます。 ロングハンドが リピータ整列でない場合、 略式プロパティのシリアライズ結果は空文字列となります。

WSC をそれぞれ幅、スタイル、色の ロングハンドプロパティの値とします。それぞれは アイテムのリストで、各アイテムは単一の値または repeat() 記法のいずれかです。 ロングハンドが リピータ整列 かどうかは、以下すべてを満たす場合です。
  1. WSC のすべてがアイテム数で等しいこと。
  2. 各アイテムインデックス i で、W[i]、S[i]、C[i] の形状がすべて同じであること:
    1. すべてリピートでない値・すべて整数リピータ・すべてauto リピータ のいずれかである。
    2. 整数リピータ の場合、<integer> 値が等しいこと。
    3. それぞれの repeat() 記法に含まれる値数も等しいこと。
この略式プロパティ宣言:
column-rule: 1px solid red, 2px dashed green, 3px dotted blue;

は次のロングハンド値になります:

column-rule-width: 1px, 2px, 3px;
column-rule-style: solid, dashed, dotted;
column-rule-color: red, green, blue;

ロングハンドが リピータ整列のため、 再び同じ略式でシリアライズされます。 3つのプロパティすべてがアイテム数3で、アイテムはすべて単一値(リピータでない)です。

略式ではなく直接ロングハンドで指定しても同様にシリアライズされます。

この略式プロパティ宣言:
column-rule: 1px solid red, repeat(2, 2px dashed green);

は次のロングハンド値になります:

column-rule-width: 1px, repeat(2, 2px);
column-rule-style: solid, repeat(2, dashed);
column-rule-color: red, repeat(2, green);

ロングハンドが リピータ整列のため、 もとの略式にシリアライズされます。 3つのプロパティがアイテム数2を持ち、 各インデックスで型(0:値、1:整数リピータ)が一致しており、 リピータの繰り返し回数(2)・値数(1)も同じです。

ロングハンドで直接指定しても同様です。

この略式プロパティ宣言:
column-rule: repeat(auto, 1px solid red, 2px dashed green);

は次のロングハンド値になります:

column-rule-width: repeat(auto, 1px, 2px);
column-rule-style: repeat(auto, solid, dashed);
column-rule-color: repeat(auto, red, green);

ロングハンドが リピータ整列のため、 もとの略式でシリアライズされます。 各プロパティ1アイテムで、いずれもautoリピータで値数も一致しています。

ロングハンドで直接指定しても動作は同じです。

このような宣言:
column-rule: repeat(auto, 1px solid red, 2px dashed green);
column-rule-width: repeat(auto, 3px, 4px, 5px);

は次のロングハンド値になります:

column-rule-width: repeat(auto, 3px, 4px, 5px);
column-rule-style: repeat(auto, solid, dashed);
column-rule-color: repeat(auto, red, green);

column-rule の略式プロパティは ロングハンドが リピータ整列でない(auto リピータの値数が異なる)ため、 空文字列としてシリアライズされます。

ロングハンド指定の場合も同様です。

このような宣言:
column-rule: repeat(2, 1px solid red, 2px dashed green);
column-rule-style: dashed, dotted, solid;

は次のロングハンド値になります:

column-rule-width: repeat(2, 1px, 2px);
column-rule-style: dashed, dotted, solid;
column-rule-color: repeat(2, red, green);

column-rule の略式プロパティは ロングハンドが リピータ整列でない (インデックス0の型:幅・色は整数リピータ、スタイルは値 で不一致)ため、空文字列としてシリアライズされます。

ロングハンドのみでも同様です。

このような宣言:
column-rule: repeat(2, 1px solid red, 2px dashed green);
column-rule-color: repeat(4, red, cyan);

は次のロングハンド値になります:

column-rule-width: repeat(2, 1px, 2px);
column-rule-style: repeat(2, solid, dashed);
column-rule-color: repeat(4, red, cyan);

column-rule の略式プロパティは ロングハンドが リピータ整列でない (整数リピータの繰り返し回数が不一致)のため空文字列としてシリアライズされます。

ロングハンドのみ指定でも同様です。

テスト

5. 謝辞

本仕様は、多くの方々からの貢献とフィードバックによって成り立っています(以下の方々を含む): Ahmad Shadeed、 Alison Maher、 Benoît Rouleau、 Elika Etemad、 Ian Kilpatrick、 Javier Contreras Tenorio、 Josh Tumath、 Kurt Catti-Schmidt、 Lea Verou、 Oliver Williams、 Rachel Andrew、 Sam Davis Omekara Jr.、 Sebastian Zartner、 Tab Atkins-Bittner、 そして CSS ワーキンググループのメンバー各位。 Gap Decorations の最初の提案を起草した Mats Palmgren 氏に特別な謝意を表します。

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

本仕様について新たなプライバシー上の考慮事項は報告されていません。

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

本仕様について新たなセキュリティ上の考慮事項は報告されていません。

8. 変更点

8.1. 2025年4月17日作業草案からの変更点

適合性

文書の規約

適合要件は、記述的な主張と RFC 2119 の用語を組み合わせて表現されています。規範的な部分における “MUST”(しなければならない)、 “MUST NOT”(してはならない)、 “REQUIRED”(必須)、 “SHALL”(すべきである)、 “SHALL NOT”(してはならない)、 “SHOULD”(推奨する)、 “SHOULD NOT”(推奨しない)、 “RECOMMENDED”(推奨)、 “MAY”(許可する)、および “OPTIONAL”(任意)のキーワードは RFC 2119 に記載されているとおりに解釈されます。 ただし可読性のため、本仕様ではこれらの単語はすべて大文字で記載されているとは限りません。

本仕様書のテキストは、非規範的と明記されている節、例、注記を除き、すべて規範的です。[RFC2119]

この仕様での例は「for example」(例えば)という語で始まるか、次のように class="example" で 規範的な本文から分離されています。

これは情報的な例です。

情報的な注記は “Note” で始まり、次のように class="note" で本文から分離されています。

注:これは情報的な注記です。

アドバイス(advisement)は、特に注意を喚起するようにスタイルされた規範的な節で、 次のように他の本文とは <strong class="advisement"> で区別されます。 UA はアクセシブルな代替手段を提供 しなければなりません

テスト

本仕様の内容に関するテストは、このような “Tests” ブロックに記述されていることがあります。 そのようなブロックは非規範的です。


適合クラス

本仕様への適合性は、以下の3つの適合クラスについて定義されています。

スタイルシート
CSSスタイルシート
レンダラー
UA で、スタイルシートのセマンティクスを解釈し、それを用いる文書を描画するもの。
オーサリングツール
UA で、スタイルシートを作成(出力)するもの。

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

本仕様へのレンダラーの適合性は、 適切な仕様に従ってスタイルシートを解釈することに加え、 本仕様で定義されたすべての機能を適切にパースして、 それを反映して文書を描画することで成立します。 ただし、デバイスの制約で UA が文書の描画ができない場合でも、 それだけで非適合になるわけではありません。(例えば、モノクロモニターで色を描画することが要件ではありません。)

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

部分的な実装

著者が将来互換なパース規則を活用してフォールバック値を指定できるよう、CSSレンダラーは サポート可能なレベルの実装がない at-ルールやプロパティ、プロパティ値、キーワード、 その他構文要素は無効扱い(および適切に無視)しなければなりません。 特に、ユーザーエージェントは1つのマルチ値プロパティ宣言の中で サポートされている値のみを選択的に扱い、サポートされていない値だけを無視することは してはなりません。 1つでも値が無効(サポート外)とされた場合、その宣言全体をCSSの規則通り無視しなければなりません。

不安定・独自機能の実装について

将来的な安定したCSS機能と衝突しないよう、CSSWGは ベストプラクティスに従い 不安定な機能独自拡張 実装を行うことを推奨します。

実験的でない実装

仕様がCandidate Recommendation (CR) ステージに達した場合、非実験的実装も可能となり 実装者は CR レベルの機能について 仕様通り正しく実装できたことを確認できた場合、ベンダープレフィックスなしで 実装をリリースするべきです。

CSSの実装間で相互運用性を確立・維持するため、CSSワーキンググループは 非実験的なCSSレンダラーに対し、ベンダープレフィックスなしの実装をリリースする前に 実装レポート(必要に応じてそのテストケースも)をW3C に提出するよう求めています。 W3Cに提出されたテストケースは CSS ワーキンググループにより審査・修正される場合があります。

テストケースや実装レポートの提出方法については CSSワーキンググループのWebサイト https://www.w3.org/Style/CSS/Test/ に案内があります。 問い合わせは public-css-testsuite@w3.org メーリングリストまでどうぞ。

索引

本仕様で定義された用語

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

参考文献

規範的な参考文献

[CSS-ALIGN-3]
Elika Etemad; Tab Atkins Jr.. CSS Box Alignment Module Level 3. 2026年1月30日. WD. URL: https://www.w3.org/TR/css-align-3/
[CSS-BACKGROUNDS-3]
Elika Etemad; Brad Kemper. CSS Backgrounds and Borders Module Level 3. 2024年3月11日. CRD. URL: https://www.w3.org/TR/css-backgrounds-3/
[CSS-BREAK-4]
Rossen Atanassov; Elika Etemad. CSS Fragmentation Module Level 4. 2018年12月18日. FPWD. URL: https://www.w3.org/TR/css-break-4/
[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-COLOR-5]
Chris Lilley; Una Kravets; Lea Verou. CSS Color Module Level 5. 2026年2月27日. WD. URL: https://www.w3.org/TR/css-color-5/
[CSS-FLEXBOX-1]
Elika Etemad; Tab Atkins Jr.; Rossen Atanassov. CSS Flexible Box Layout Module Level 1. 2025年10月14日. CRD. URL: https://www.w3.org/TR/css-flexbox-1/
[CSS-GRID-1]
Tab Atkins Jr.; et al. CSS Grid Layout Module Level 1. 2025年3月26日. CRD. URL: https://www.w3.org/TR/css-grid-1/
[CSS-GRID-2]
Tab Atkins Jr.; et al. CSS Grid Layout Module Level 2. 2025年3月26日. CRD. URL: https://www.w3.org/TR/css-grid-2/
[CSS-GRID-3]
Tab Atkins Jr.; et al. CSS Grid Layout Module Level 3. 2026年1月21日. WD. URL: https://www.w3.org/TR/css-grid-3/
[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-MULTICOL-2]
Florian Rivoal; Rachel Andrew. CSS Multi-column Layout Module Level 2. 2024年12月19日. FPWD. URL: https://www.w3.org/TR/css-multicol-2/
[CSS-VALUES-3]
Tab Atkins Jr.; Elika Etemad. CSS Values and Units Module Level 3. 2024年3月22日. CRD. 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/
[CSS2]
Bert Bos; et al. Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification. 2011年6月7日. REC. URL: https://www.w3.org/TR/CSS2/
[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
[WEB-ANIMATIONS-1]
Brian Birtles; et al. Web Animations. 2023年6月5日. WD. URL: https://www.w3.org/TR/web-animations-1/

参考情報

[CSS-GAPS-1]
Kevin Babbitt. CSS Gap Decorations Module Level 1. 2025年4月17日. FPWD. URL: https://www.w3.org/TR/css-gaps-1/

プロパティ一覧

名前 初期値 適用対象 継承 %指定 アニメーション型 正則順序 算出値
column-rule <gap-rule-list> | <gap-auto-rule-list> 個別のプロパティを参照 個別のプロパティを参照 個別のプロパティを参照 個別のプロパティを参照 個別のプロパティを参照 文法に従う 個別のプロパティを参照
column-rule-break none | normal | intersection normal グリッドコンテナー、フレックスコンテナー、マルチコラムコンテナー、グリッドレーンコンテナー no n/a 離散 文法に従う 指定どおり
column-rule-color <line-color-list> | <auto-line-color-list> currentcolor グリッドコンテナー、フレックスコンテナー、マルチコラムコンテナー、グリッドレーンコンテナー no n/a 繰り返し可能なリスト、詳細は . 文法に従う 指定どおり
column-rule-edge-inset <length-percentage> [ <length-percentage> ]? 個別のプロパティを参照 column-rule-edge-inset-start、column-rule-edge-inset-end、column-rule-interior-inset-start、column-rule-interior-inset-end、row-rule-edge-inset-start、row-rule-edge-inset-end、row-rule-interior-inset-start、row-rule-interior-inset-end と同様 個別のプロパティを参照 個別のプロパティを参照 個別のプロパティを参照 文法に従う 個別のプロパティを参照
column-rule-edge-inset-end <length-percentage> 0 グリッドコンテナー、フレックスコンテナー、マルチコラムコンテナー、グリッドレーンコンテナー no 横断ギャップ幅を参照 算出値型による 文法に従う 指定どおり
column-rule-edge-inset-start <length-percentage> 0 グリッドコンテナー、フレックスコンテナー、マルチコラムコンテナー、グリッドレーンコンテナー no 横断ギャップ幅を参照 算出値型による 文法に従う 指定どおり
column-rule-inset <'column-rule-edge-inset'> [ / <'column-rule-interior-inset'> ]? 個別のプロパティを参照 column-rule-edge-inset、column-rule-interior-inset、row-rule-edge-inset、row-rule-interior-inset と同様 個別のプロパティを参照 個別のプロパティを参照 個別のプロパティを参照 文法に従う 個別のプロパティを参照
column-rule-inset-end <length-percentage> 個別のプロパティを参照 column-rule-edge-inset-start、column-rule-interior-inset-start、column-rule-edge-inset-end、column-rule-interior-inset-end、row-rule-edge-inset-start、row-rule-interior-inset-start、row-rule-edge-inset-end、row-rule-interior-inset-end と同様 個別のプロパティを参照 個別のプロパティを参照 個別のプロパティを参照 文法に従う 個別のプロパティを参照
column-rule-inset-start <length-percentage> 個別のプロパティを参照 column-rule-edge-inset-start、column-rule-interior-inset-start、column-rule-edge-inset-end、column-rule-interior-inset-end、row-rule-edge-inset-start、row-rule-interior-inset-start、row-rule-edge-inset-end、row-rule-interior-inset-end と同様 個別のプロパティを参照 個別のプロパティを参照 個別のプロパティを参照 文法に従う 個別のプロパティを参照
column-rule-interior-inset <length-percentage> [ <length-percentage> ]? 個別のプロパティを参照 column-rule-edge-inset-start、column-rule-edge-inset-end、column-rule-interior-inset-start、column-rule-interior-inset-end、row-rule-edge-inset-start、row-rule-edge-inset-end、row-rule-interior-inset-start、row-rule-interior-inset-end と同様 個別のプロパティを参照 個別のプロパティを参照 個別のプロパティを参照 文法に従う 個別のプロパティを参照
column-rule-interior-inset-end <length-percentage> 0 グリッドコンテナー、フレックスコンテナー、マルチコラムコンテナー、グリッドレーンコンテナー no 横断ギャップ幅を参照 算出値型による 文法に従う 指定どおり
column-rule-interior-inset-start <length-percentage> 0 グリッドコンテナー、フレックスコンテナー、マルチコラムコンテナー、グリッドレーンコンテナー no 横断ギャップ幅を参照 算出値型による 文法に従う 指定どおり
column-rule-style <line-style-list> | <auto-line-style-list> none グリッドコンテナー、フレックスコンテナー、マルチコラムコンテナー、グリッドレーンコンテナー no n/a 離散 文法に従う 指定どおり
column-rule-visibility-items all | around | between all グリッドコンテナー、マルチコラムコンテナー no n/a 離散 文法に従う 指定どおり
column-rule-width <line-width-list> | <auto-line-width-list> medium グリッドコンテナー、フレックスコンテナー、マルチコラムコンテナー、グリッドレーンコンテナー no n/a 繰り返し可能なリスト、詳細は . 文法に従う 絶対長さリスト、border width としてスナップ
row-rule <gap-rule-list> | <gap-auto-rule-list> 個別のプロパティを参照 個別のプロパティを参照 個別のプロパティを参照 個別のプロパティを参照 個別のプロパティを参照 文法に従う 個別のプロパティを参照
row-rule-break none | normal | intersection normal グリッドコンテナー、フレックスコンテナー、マルチコラムコンテナー、グリッドレーンコンテナー no n/a 離散 文法に従う 指定どおり
row-rule-color <line-color-list> | <auto-line-color-list> currentcolor グリッドコンテナー、フレックスコンテナー、マルチコラムコンテナー、グリッドレーンコンテナー no n/a 繰り返し可能なリスト、詳細は . 文法に従う 指定どおり
row-rule-edge-inset <length-percentage> [ <length-percentage> ]? 個別のプロパティを参照 column-rule-edge-inset-start、column-rule-edge-inset-end、column-rule-interior-inset-start、column-rule-interior-inset-end、row-rule-edge-inset-start、row-rule-edge-inset-end、row-rule-interior-inset-start、row-rule-interior-inset-end と同様 個別のプロパティを参照 個別のプロパティを参照 個別のプロパティを参照 文法に従う 個別のプロパティを参照
row-rule-edge-inset-end <length-percentage> 0 グリッドコンテナー、フレックスコンテナー、マルチコラムコンテナー、グリッドレーンコンテナー no 横断ギャップ幅を参照 算出値型による 文法に従う 指定どおり
row-rule-edge-inset-start <length-percentage> 0 グリッドコンテナー、フレックスコンテナー、マルチコラムコンテナー、グリッドレーンコンテナー no 横断ギャップ幅を参照 算出値型による 文法に従う 指定どおり
row-rule-inset <'column-rule-edge-inset'> [ / <'column-rule-interior-inset'> ]? 個別のプロパティを参照 column-rule-edge-inset、column-rule-interior-inset、row-rule-edge-inset、row-rule-interior-inset と同様 個別のプロパティを参照 個別のプロパティを参照 個別のプロパティを参照 文法に従う 個別のプロパティを参照
row-rule-inset-end <length-percentage> 個別のプロパティを参照 column-rule-edge-inset-start、column-rule-interior-inset-start、column-rule-edge-inset-end、column-rule-interior-inset-end、row-rule-edge-inset-start、row-rule-interior-inset-start、row-rule-edge-inset-end、row-rule-interior-inset-end と同様 個別のプロパティを参照 個別のプロパティを参照 個別のプロパティを参照 文法に従う 個別のプロパティを参照
row-rule-inset-start <length-percentage> 個別のプロパティを参照 column-rule-edge-inset-start、column-rule-interior-inset-start、column-rule-edge-inset-end、column-rule-interior-inset-end、row-rule-edge-inset-start、row-rule-interior-inset-start、row-rule-edge-inset-end、row-rule-interior-inset-end と同様 個別のプロパティを参照 個別のプロパティを参照 個別のプロパティを参照 文法に従う 個別のプロパティを参照
row-rule-interior-inset <length-percentage> [ <length-percentage> ]? 個別のプロパティを参照 column-rule-edge-inset-start、column-rule-edge-inset-end、column-rule-interior-inset-start、column-rule-interior-inset-end、row-rule-edge-inset-start、row-rule-edge-inset-end、row-rule-interior-inset-start、row-rule-interior-inset-end と同様 個別のプロパティを参照 個別のプロパティを参照 個別のプロパティを参照 文法に従う 個別のプロパティを参照
row-rule-interior-inset-end <length-percentage> 0 グリッドコンテナー、フレックスコンテナー、マルチコラムコンテナー、グリッドレーンコンテナー no 横断ギャップ幅を参照 算出値型による 文法に従う 指定どおり
row-rule-interior-inset-start <length-percentage> 0 グリッドコンテナー、フレックスコンテナー、マルチコラムコンテナー、グリッドレーンコンテナー no 横断ギャップ幅を参照 算出値型による 文法に従う 指定どおり
row-rule-style <line-style-list> | <auto-line-style-list> none グリッドコンテナー、フレックスコンテナー、マルチコラムコンテナー、グリッドレーンコンテナー no n/a 離散 文法に従う 指定どおり
row-rule-visibility-items all | around | between all グリッドコンテナー、マルチコラムコンテナー no n/a 離散 文法に従う 指定どおり
row-rule-width <line-width-list> | <auto-line-width-list> medium グリッドコンテナー、フレックスコンテナー、マルチコラムコンテナー、グリッドレーンコンテナー no n/a 繰り返し可能なリスト、詳細は . 文法に従う 絶対長さリスト、border width としてスナップ
rule <'column-rule'> 個別のプロパティを参照 column-rule および row-rule と同様 no 個別のプロパティを参照 個別のプロパティを参照 文法に従う 個別のプロパティを参照
rule-break <'column-rule-break'> 個別のプロパティを参照 column-rule-break および row-rule-break と同様 個別のプロパティを参照 個別のプロパティを参照 個別のプロパティを参照 文法に従う 個別のプロパティを参照
rule-color <'column-rule-color'> 個別のプロパティを参照 column-rule-color および row-rule-color と同様 no 個別のプロパティを参照 個別のプロパティを参照 文法に従う 個別のプロパティを参照
rule-edge-inset <'column-rule-edge-inset'> 個別のプロパティを参照 column-rule-edge-inset および row-rule-edge-inset と同様 個別のプロパティを参照 個別のプロパティを参照 個別のプロパティを参照 文法に従う 個別のプロパティを参照
rule-inset <'column-rule-inset'> 個別のプロパティを参照 column-rule-inset および row-rule-inset と同様 個別のプロパティを参照 個別のプロパティを参照 個別のプロパティを参照 文法に従う 個別のプロパティを参照
rule-inset-end <'column-rule-inset-end'> 個別のプロパティを参照 column-rule-inset-end および row-rule-inset-end と同様 個別のプロパティを参照 個別のプロパティを参照 個別のプロパティを参照 文法に従う 個別のプロパティを参照
rule-inset-start <'column-rule-inset-start'> 個別のプロパティを参照 column-rule-inset-start および row-rule-inset-start と同様 個別のプロパティを参照 個別のプロパティを参照 個別のプロパティを参照 文法に従う 個別のプロパティを参照
rule-interior-inset <'column-rule-interior-inset'> 個別のプロパティを参照 column-rule-interior-inset および row-rule-interior-inset と同様 個別のプロパティを参照 個別のプロパティを参照 個別のプロパティを参照 文法に従う 個別のプロパティを参照
rule-overlap row-over-column | column-over-row row-over-column グリッドコンテナー、フレックスコンテナー、グリッドレーンコンテナー no n/a 離散 文法に従う 指定どおり
rule-style <'column-rule-style'> 個別のプロパティを参照 column-rule-style および row-rule-style と同様 no 個別のプロパティを参照 個別のプロパティを参照 文法に従う 個別のプロパティを参照
rule-visibility-items <'column-rule-visibility-items'> 個別のプロパティを参照 column-rule-visibility-items および row-rule-visibility-items と同様 個別のプロパティを参照 個別のプロパティを参照 個別のプロパティを参照 文法に従う 個別のプロパティを参照
rule-width <'column-rule-width'> 個別のプロパティを参照 column-rule-width および row-rule-width と同様 no 個別のプロパティを参照 個別のプロパティを参照 文法に従う 個別のプロパティを参照