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

W3C 初公開作業草案,

この文書の詳細情報
このバージョン:
https://www.w3.org/TR/2025/WD-css-gaps-1-20250417/
最新公開バージョン:
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 Babbitt (Microsoft)
この仕様への編集提案:
GitHubエディター

概要

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

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

この文書のステータス

このセクションは、公開時点での文書のステータスについて説明します。 現在のW3Cの出版物一覧および本技術レポートの最新改訂版は、 https://www.w3.org/TR/ のW3C標準とドラフトのインデックスで確認できます。

この文書は CSS作業グループによって、初公開作業草案として 勧告プロセスを利用して公開されました。 初公開作業草案としての公開は、 W3Cおよびそのメンバーによる支持を意味するものではありません。

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

ご意見は、GitHubで課題を提出(推奨)することでお送りください。 タイトルには仕様コード “css-gaps” を含め、例:「[css-gaps] …コメント概要…」のようにしてください。 すべての課題とコメントはアーカイブされています。 または、(アーカイブ)される公開メーリングリスト www-style@w3.orgにフィードバックを送ることもできます。

この文書は2023年11月3日W3Cプロセス文書に準拠しています。

この文書は、W3C特許ポリシーの下で運営されるグループによって作成されました。 W3Cは、グループの成果物に関連して行われた特許開示の公開リストを維持しています。 そのページには特許開示方法も記載されています。 特許の実際の知識を有し、その特許に必要な請求項が含まれていると考える個人は、 W3C特許ポリシー第6節に従って情報を開示する必要があります。

1. 導入

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

CSS Multicol 1 § 4 列のギャップとルールは、 multicolコンテナ内の列間にルール(線)を描画できることを許可しています。 本仕様は column-rule-widthcolumn-rule-style、およびcolumn-rule-colorプロパティを拡張し、行方向の同等物を追加し、 他のコンテナレイアウトへの適用範囲を広げ、ギャップ装飾が描画される場所や方法を高度に制御できるようにします。

1.1. 値の定義

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

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

2. ギャップ装飾

CSSの様々なレイアウト、例えばmulticolコンテナflexコンテナgridコンテナmasonryコンテナでは、 子ボックス同士を隣接して配置し、その間にギャップ(ガターとも呼ばれる)を設けます。 それぞれのギャップにはギャップ装飾を含めることができ、 これは隣接するボックス間に描画される可視セパレーター(線など)です。

.grid-with-spans {
  display: grid;
  grid-template: repeat(4, 100px) / repeat(4, 100px);
  gap: 20px;
  row-rule: 6px solid red;
  column-rule: 6px solid blue;
}
スパンするアイテムとギャップ装飾のあるグリッド。
.flex {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  width: 500px;
  row-rule: 6px solid red;
  column-rule: 6px solid blue;
}
ギャップ装飾のあるフレックスボックス。

2.1. レイアウトと描画

この仕様は、一般的にコンテナレイアウトのギャップの形状を定義しません。 それは他の仕様に委ねられています。 CSS Box Alignment 3 § 8 箱間のギャップ を参照してください。ここでmulticolコンテナflexコンテナgridコンテナに関する定義が示されています。

ギャップ装飾はスペースを占有しません。 つまり、ギャップ装飾の有無や幅は、他の要素の配置に影響しません。 ギャップ装飾がそのギャップよりも広い場合、隣接するボックスがその装飾と重なることがあり、 場合によっては装飾がコンテナの枠外にまで広がることもあります。ギャップ装飾はコンテナのボーダーのすぐ上に描画されます。 スクロール可能なコンテナの場合、コンテナのボーダーや背景はスクロールされませんが、 装飾はコンテナ内のアイテムと共にスクロールする必要があります。

ギャップ交点は、次の各場所に存在すると定義されます:

以下の例は、ギャップ交点の位置を示しており、 各ケースでマゼンタ色の+でマークされています。

.grid {
  display: grid;
  grid-template: repeat(4, 100px) / repeat(4, 100px);
  gap: 20px;
  background: rgb(255 255 128);
}
.grid > * {
  border: 1px dashed black;
}
スパンするアイテムを持つグリッド内のギャップ交点の位置。 スパンアイテムがコンテナの端に接している場合や、両側がスパンアイテムで挟まれている場合でも (例えば #2 と #6、または #4 と #7 の間)、ギャップ交点が存在することに注意してください。
.flex {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  width: 500px;
  background: rgb(255 255 128);
}
.flex > * {
  border: 1px dashed black;
}
フレックスボックス内のギャップ交点の位置。 コンテナの端にギャップ交点があること、 また隣接する行のアイテムが完全には揃っていない場合(#2、#3、#4、#5の間)に、 近接する2つのギャップ交点が存在することに注意してください。

注: CSS Box Alignment 3 § 8.1 行と列のガター:row-gapおよびcolumn-gapプロパティは、 フレックスコンテナ内の交差方向ギャップを、同じ行内の隣接するフレックスアイテムの間と定義しています。 したがって、上記の例では、#4と#7の右端が揃っていたり、#5と#8の左端が揃っていても、 それら2組のアイテム間の空間は異なる2つのギャップであり、異なる行にあるためです。 このため、#4、#5、#7、#8の間の交点には、位置が一致する2つのギャップ交点が存在します: #4と#5の間のギャップの下端と、#7と#8の間のギャップの上端です。

ギャップ装飾は、 対応するギャップの中心で、両端にあるギャップ交点のペアに沿って、エッジと平行に描画されます。

2.2. ギャップ装飾をセグメントに分割する:column-rule-breakrow-rule-break、およびrule-break プロパティ

名前: column-rule-break, row-rule-break
値: none | spanning-item | intersection
初期値: spanning-item
適用対象: gridコンテナflexコンテナmulticolコンテナmasonryコンテナ
継承: なし
パーセンテージ: 該当なし
計算値: 指定通り
標準順序: 文法通り
アニメーション型: 離散

コンテナ内のギャップ装飾を、アイテムによって形成される可視の「T字」や「十字」交点で分割してセグメント化する動作を設定します。 これらの値をどのように適用するかの詳細は、ギャップ装飾端点のペア決定手順で示されています。

none
ギャップ装飾は可視の「T字」や「十字」交点で開始・終了しません。 代わりに、ギャップの端から端まで単一の連続した装飾が描画されます。
spanning-item
ギャップ装飾は可視の「T字」交点で開始・終了しますが、可視の「十字」交点は貫通します。
intersection
ギャップ装飾は可視の「T字」および「十字」交点で開始・終了します。

これらの値についてBikeshedしてください。

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

column-rule-break および row-rule-break プロパティに同じ値を設定します。

2.2.1. ギャップ交点をセグメントにペア化する

与えられた gap のコンテキストにおいて、 ギャップ交点 ab のペアは、 非連続と見なされます。 これは、a から b への、gap と同じ幅の線分が、 コンテナ内の子アイテムと交差する場合です。

注: この定義の主な利用例は、 ギャップ装飾が、 意図しない場合にスパンアイテムと交差しないようにすることです。 例えば、スパンアイテムがコンテナの端に接している場合や、 スパンアイテムが「T交点」を形成する場合です。 ただし、定義の具体的な表現は以下のようなケースにも対応することを意図しています:

4つの印が付けられた ギャップ交点は、 共通のギャップ中心線上に並んでいます。 しかし、アイテム3がアイテム1と5よりもわずかに幅広いため、 上から2番目と3番目の交点は 非連続です。 したがって、上の2つの ギャップ交点がペアを形成し、 下の2つの ギャップ交点もペアを形成します。 (さらに、2つの中央点の右側に少しずれた ギャップ交点のペアも存在し、 これらは印が付けられていません。これらの点もさらに別のペアを形成します。)

与えられた gap 内で ギャップ装飾端点のペアを決定するには:
  1. pairs を空リストとして初期化する。 endpointsgap の中心線上にある ギャップ交点のリストとし、 gap の軸に沿って開始から終了まで順に並べる。 break を、column-rule-break または row-rule-break の使用値とし、 gap に適用される方を使う。
  2. endpoints の要素数が2未満の場合、pairs を返す。
  3. breaknone 以外であり、 endpoints の最初の2つのアイテムが 非連続の場合、 endpoints の最初のアイテムを削除し、ステップ2に戻る。
  4. endpoints の最初のアイテムを削除し、 start をそのアイテムに設定する。
  5. endpoints の最初のアイテムを削除し、 end をそのアイテムに設定する。
  6. endpoints が空でなく、以下のいずれかの条件が真なら...
    1. breaknone である。
    2. breakspanning-item であり、 startendpoints の最初のアイテムが 非連続ではない。
    3. breakintersection であり、 startendpoints の最初のアイテムが 非連続ではなく、 かつ、その交点が反対側にスパンアイテムで挟まれている場合。
    ...ならステップ5に戻る。
  7. offset を計算し、 startgap 内で順方向にオフセットする。
  8. offset を計算し、 endgap 内で逆方向にオフセットする。
  9. startend のタプルを pairs に追加する。
  10. ステップ2に戻る。

上記の手順で識別された各端点のペア間に ギャップ装飾が描画されます。

以下の例は、*-rule-break プロパティの様々な設定を示します。 違いをより明確にするために、*-rule-outset プロパティは 0 に設定されています。

.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;
  rule-outset: 0px;
}
グリッド ギャップ装飾(分割なし)。 ギャップ装飾がグリッドに配置されたアイテムの「裏側」に伸びていることに注意してください。
.break-spanning-item-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: spanning-item;
  rule-outset: 0px;
}
グリッド ギャップ装飾(スパンアイテムに隣接しない ギャップ交点で分割)。
.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;
  rule-outset: 0px;
}
グリッド ギャップ装飾(反対側にスパンアイテムで挟まれていない ギャップ交点ごとに分割)。
.break-none-flex {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  row-rule: 6px solid red;
  column-rule: 6px solid blue;
  rule-break: none;
  rule-outset: 0px;
}
フレックスボックス ギャップ装飾(分割なし)。 各フレックスラインは独自のギャップを持つため、 隣接するフレックスラインの ギャップ装飾は、 ギャップが揃っていても別々です。

注: フレックスボックスにはスパンアイテムの概念がないため、 spanning-item の指定は none と同じ効果になります。

.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;
  rule-outset: 0px;
}
フレックスボックス ギャップ装飾(すべての ギャップ交点で分割)。

2.3. ギャップ装飾端点の調整:column-rule-outsetrow-rule-outset、およびrule-outsetプロパティ

名前: column-rule-outset, row-rule-outset
値: <length-percentage>
初期値: 50%
適用対象: グリッドコンテナフレックスコンテナマルチカラムコンテナメイソンリーコンテナ
継承: no
パーセンテージ: 交差ギャップ幅を参照
算出値: 指定通り
正規の順序: 文法に従う
アニメーション型: 算出値タイプによる

これらのプロパティは、通常は端点を決定するギャップ装飾の端点をギャップ交点に対してオフセットするために使用できます。 50%の初期値では、ギャップ装飾の端点が交点の中央に配置されます。 0の値では、ギャップ装飾の端点が交点の端と一致します。 正の値は交点の中心方向へ伸ばし、負の値は中心から離します。 これらのオフセットはコンテナの端にも適用され、正の値はコンテナの内容範囲外に伸びることがあります。

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

column-rule-outset および row-rule-outset プロパティに同じ値を設定します。

.outset-0px {
  column-rule-outset: 0px;
  column-rule-break: intersection;
}
0pxのoutsetはギャップ装飾の端を隣接アイテムと揃えます。
.outset-5px {
  column-rule-outset: 5px;
  column-rule-break: intersection;
}
5pxのoutsetはギャップ装飾の端を隣接アイテムの端より少し外側に拡張します。
.outset-50percent {
  column-rule-outset: 50%;
  column-rule-break: intersection;
}
50%(初期値)のoutsetでは、ギャップ装飾の両端が交点の中央まで伸びます。 隣り合うギャップ装飾が中央で「合流」し、連続した線を作ります。 コンテナ端では交差ギャップ幅0と定義されるため、 outset値50%0となり、ギャップ装飾はコンテナの範囲外に伸びません。 (前の例はpx単位のoutsetを指定しているので対比してください。)
.outset-negative-5px {
  column-rule-outset: -5px;
  column-rule-break: intersection;
}
-5pxのoutsetではギャップ装飾の端が隣接アイテムの端より短くなります。

指定されたギャップ内のギャップ交点を考慮する場合、 各点には交差ギャップ幅が割り当てられ、次のように定義されます:

コンテナの内容端の場合
交差ギャップ幅0です。
他のギャップとの交差の場合
交差ギャップ幅は、該当するギャップに対するcolumn-gapまたはrow-gapプロパティの使用値です。
offset を計算するには、指定されたギャップ交点pointと、指定されたgapに対して:
  1. widthpoint交差ギャップ幅とする。
  2. outset を、column-rule-outsetまたはrow-rule-outsetの算出値とし、gapに該当する方を使う。 outset内のパーセンテージはwidthで解決する。
  3. resultwidth × 50% とし、そこから outset を引く。
  4. result を返す。

offsetの適用方法については、ギャップ装飾端点のペアを決定する手順を参照してください。

2.4. ギャップ装飾の描画順序:rule-paint-order プロパティ

名前: rule-paint-order
値: row-over-column | column-over-row
初期値: row-over-column
適用対象: グリッドコンテナフレックスコンテナメイソンリーコンテナ
継承: no
パーセンテージ: n/a
算出値: 指定通り
正規の順序: 文法に従う
アニメーション型: 離散

二次元コンテナ内のギャップ装飾の描画順序を設定します。

以下の例は、rule-paint-orderプロパティによるギャップ装飾の描画順序の調整を示します。

.row-over-coulumn {
  rule-paint-order: row-over-column;
  row-rule: 6px solid red;
  column-rule: 6px solid blue;
}
行優先・列後のギャップ装飾描画順序。
rule-paint-order: column-over-row;
row-rule: 6px solid red;
column-rule: 6px solid blue;
列優先・行後のギャップ装飾描画順序。

3. 色、スタイル、および幅

このセクションのプロパティ定義は、[CSS-MULTICOL-1]で同じ名前のプロパティ定義より優先されます。

3.1. ギャップ装飾の色:column-rule-color および row-rule-color プロパティ

名前: column-rule-color, row-rule-color
値: <line-color-list> | <auto-line-color-list>
初期値: currentcolor
適用対象: グリッドコンテナ, フレックスコンテナ, マルチカラムコンテナ, および メイソンリーコンテナ
継承: no
パーセンテージ: n/a
算出値: 指定通り
正規順序: 文法に従う
アニメーション型: 算出値型による
<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> ]+ )
<color>
ギャップ装飾の色を設定します。

3.2. ギャップ装飾のスタイル:column-rule-style および row-rule-style プロパティ

名前: column-rule-style, row-rule-style
値: <line-style-list> | <auto-line-style-list>
初期値: none
適用対象: グリッドコンテナ, フレックスコンテナ, マルチカラムコンテナ, および メイソンリーコンテナ
継承: no
パーセンテージ: n/a
算出値: 指定通り
正規順序: 文法に従う
アニメーション型: 離散
<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> の値は collapsing border modelと同様に解釈されます。

3.3. ギャップ装飾の幅:column-rule-width および row-rule-width プロパティ

名前: column-rule-width, row-rule-width
値: <line-width-list> | <auto-line-width-list>
初期値: medium
適用対象: グリッドコンテナ, フレックスコンテナ, マルチカラムコンテナ, および メイソンリコンテナ
継承: no
パーセンテージ: n/a
算出値: 絶対長のリスト、border幅としてスナップされた値、または下記条件下で 0
標準順序: 文法順
アニメーション型: 算出値型による
<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> ]+ )

このプロパティはギャップデコレーションの幅を設定します。負の値は許可されません。

算出値 column-rule-stylenone または hidden の場合、 column-rule-width の算出値は 0 になります。 この挙動はCSS Multicol 1 § 4.4 カラムルールの幅: column-rule-width プロパティとの後方互換性のためです。

"0に強制"する挙動は値のリストにも適用されるべきか? もしそうなら、整列していないリストの場合どのように扱うべきか?

3.4. 値のリストと repeat() 記法

このセクションの各プロパティは、スペース区切りの値リストを受け付けます。 このように複数の値を設定することで、コンテナ内のギャップデコレーションを変化させることができます。

著者は交互に赤と青のカラムルールを次のように指定できます:
column-rule-width: 1px;
column-rule-style: solid;
column-rule-color: red blue;

このようなリストには repeat() 記法を含めることができます。 CSS Grid Layout 1 § 7.2.3 行と列の繰り返し: repeat() 記法と同様に、これらの記法はギャップデコレーションの繰り返しパターンをよりコンパクトに記述できます。

repeat() 構文の一般形は、概ね次のようになります。

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

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

<integer>
整数リピーター を指定します。 整数リピーターは、第2引数の値リストを 第1引数で指定された回数だけ展開します。
著者は次のように記述できます:
column-rule-color: gray red blue red blue red blue gray;

あるいは次のように短縮でき、同じ色の並びになります:

column-rule-color: gray repeat(3, red blue) gray;
auto
自動リピーターを指定します。 自動リピーターは 他のリスト部分から値が割り当てられないギャップに値を埋めるために使われます。 1つの値リスト内で repeat() による 自動リピーター は最大1つのみ指定可能です。
前の例に続き、著者が最終レイアウトのカラム数を知らない場合、次のように記述できます:
column-rule-color: gray repeat(auto, red blue) gray;

この場合、最初と最後のカラムギャップにgrayが入り、間のギャップには赤と青が交互に割り当てられます。

repeat() の第2引数は、プロパティが受け付ける値のスペース区切りリストです。

ギャップデコレーション値の割り当てを、gaps のリストに values のリストを使って行う手順:
  1. values 内の 整数リピーター を展開済みの値に置き換える。
  2. values自動リピーター がなければ:
    1. values の先頭から gaps の先頭まで、各値を対応するギャップに割り当てる。 値がギャップより少ない場合は values の先頭から繰り返し、必要数割り当てる。
    2. この手順を終了する。
  3. values自動リピーター が含まれる場合、 leading count自動リピーター より前の値数、 trailing count自動リピーター より後の値数とする。
  4. gaps を次のように分割する:
    1. leading gapsgaps の先頭 leading count 個を含める。
    2. trailing gapsgaps の末尾 trailing count 個を含める(leading gaps に含まれるものは除く)。
    3. auto gapsgaps のうち leading gapstrailing gaps に含まれないものを含める。
  5. leading gaps が空でなければ、最初の leading count 個の値を使って ギャップデコレーション値の割り当てを実施。
  6. trailing gaps が空でなければ、最後の trailing count 個の値を使って 逆順でギャップデコレーション値の割り当てを実施。
  7. auto gaps が空でなければ、ギャップデコレーション値の割り当てを、自動リピーターの第2引数の値リストで実施。
逆順でギャップデコレーション値の割り当てを、gaps のリストに values のリストを使って行う場合、 ギャップデコレーション値の割り当てと同様の手順を行い、ステップ2の "先頭" を "末尾" に変更する。

3.5. ギャップデコレーションのショートハンド: column-rule および row-rule プロパティ

名前: column-rule, row-rule
値: <gap-rule-list> | <gap-auto-rule-list>
初期値: 個別プロパティを参照
適用対象: 個別プロパティを参照
継承: 個別プロパティを参照
パーセンテージ: 個別プロパティを参照
算出値: 個別プロパティを参照
アニメーション型: 個別プロパティを参照
標準順序: 文法順
<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>

これらのショートハンドは、対応する幅・スタイル・色プロパティをまとめて設定します。

3.6. 双方向ギャップデコレーションのショートハンド: rule-color, rule-style, rule-width, および rule プロパティ

名前: rule-color
値: <'column-rule-color'>
初期値: 個別プロパティを参照
適用対象: column-rule-color および row-rule-color と同じ
継承: no
パーセンテージ: 個別プロパティを参照
算出値: 個別プロパティを参照
アニメーション型: 個別プロパティを参照
標準順序: 文法順
名前: rule-style
値: <'column-rule-style'>
初期値: 個別プロパティを参照
適用対象: column-rule-style および row-rule-style と同じ
継承: no
パーセンテージ: 個別プロパティを参照
算出値: 個別プロパティを参照
アニメーション型: 個別プロパティを参照
標準順序: 文法順
名前: rule-width
値: <'column-rule-width'>
初期値: 個別プロパティを参照
適用対象: column-rule-width および row-rule-width と同じ
継承: no
パーセンテージ: 個別プロパティを参照
算出値: 個別プロパティを参照
アニメーション型: 個別プロパティを参照
標準順序: 文法順
名前: rule
値: <'column-rule'>
初期値: 個別プロパティを参照
適用対象: column-rule および row-rule と同じ
継承: no
パーセンテージ: 個別プロパティを参照
算出値: 個別プロパティを参照
アニメーション型: 個別プロパティを参照
標準順序: 文法順

これらのショートハンドは、対応するカラムおよびロー(行)プロパティに同じ値を設定します。

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

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

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

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

適合性

文書の慣例

適合性要件は、記述的な主張と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" で規範的なテキストから分離されます。例えば次のようになります:

Note: これは情報提供の注記です。

勧告文は、特別な注意を促すために規範的なセクションとして強調され、他の規範的テキストと区別して <strong class="advisement"> でマークされます。例えば次のように: UAはアクセシブルな代替手段を提供しなければなりません。

適合クラス

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

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

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

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

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

部分的な実装

著者がフォールバック値を設定できるよう将来互換性のあるパース規則を活用するために、CSSレンダラーは、サポートできないatルール、プロパティ、プロパティ値、キーワード、その他の構文要素を無効として扱い(適切に無視)、利用可能なレベルのサポートがないものとします。特に、ユーザーエージェントは、単一の複数値プロパティ宣言内でサポートされていないコンポーネント値だけを選択的に無視し、サポートされている値だけを適用してはいけません。いずれかの値が無効(サポートされていない値はすべて無効)と見なされる場合、CSSでは宣言全体を無視する必要があります。

不安定・独自機能の実装

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

非実験的な実装

仕様書がCandidate Recommendation(CR)段階に達すると、非実験的な実装が可能となり、実装者は仕様通りに正しく実装できるCRレベルの機能について、プレフィックスなしの実装をリリースすべきです。

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

テストケースや実装レポートの提出方法については、CSSワーキンググループのウェブサイト 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(CSSボックスアラインメントモジュール レベル3). 2025年3月11日. WD. URL: https://www.w3.org/TR/css-align-3/
[CSS-BACKGROUNDS-3]
Elika Etemad; Brad Kemper. CSS Backgrounds and Borders Module Level 3(CSS背景と枠線モジュール レベル3). 2024年3月11日. CRD. URL: https://www.w3.org/TR/css-backgrounds-3/
[CSS-COLOR-5]
Chris Lilley; 他. CSS Color Module Level 5(CSSカラー モジュール レベル5). 2025年3月18日. WD. URL: https://www.w3.org/TR/css-color-5/
[CSS-FLEXBOX-1]
Tab Atkins Jr.; 他. CSS Flexible Box Layout Module Level 1(CSSフレキシブルボックスレイアウトモジュール レベル1). 2018年11月19日. CR. URL: https://www.w3.org/TR/css-flexbox-1/
[CSS-GRID-1]
Tab Atkins Jr.; 他. CSS Grid Layout Module Level 1(CSSグリッドレイアウトモジュール レベル1). 2025年3月26日. CRD. URL: https://www.w3.org/TR/css-grid-1/
[CSS-GRID-2]
Tab Atkins Jr.; 他. CSS Grid Layout Module Level 2(CSSグリッドレイアウトモジュール レベル2). 2025年3月26日. CRD. URL: https://www.w3.org/TR/css-grid-2/
[CSS-GRID-3]
Tab Atkins Jr.; 他. CSS Grid Layout Module Level 3(CSSグリッドレイアウトモジュール レベル3). 2025年2月7日. WD. URL: https://www.w3.org/TR/css-grid-3/
[CSS-MULTICOL-1]
Florian Rivoal; Rachel Andrew. CSS Multi-column Layout Module Level 1(CSSマルチカラムレイアウトモジュール レベル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(CSSマルチカラムレイアウトモジュール レベル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(CSS値と単位モジュール レベル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(CSS値と単位モジュール レベル4). 2024年3月12日. WD. URL: https://www.w3.org/TR/css-values-4/
[CSS2]
Bert Bos; 他. Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification(カスケーディングスタイルシート レベル2 改訂1(CSS2.1)仕様). 2011年6月7日. REC. URL: https://www.w3.org/TR/CSS2/
[RFC2119]
S. Bradner. Key words for use in RFCs to Indicate Requirement Levels(RFCで要求レベルを示すためのキーワード). 1997年3月. Best Current Practice. URL: https://datatracker.ietf.org/doc/html/rfc2119

プロパティ一覧

名前 初期値 適用対象 継承 パーセンテージ アニメーション型 標準順序 算出値
column-rule <gap-rule-list> | <gap-auto-rule-list> 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 文法順 個別プロパティ参照
column-rule-break none | spanning-item | intersection spanning-item グリッドコンテナ、フレックスコンテナ、マルチカラムコンテナ、メイソンリコンテナ no n/a 離散値 文法順 指定通り
column-rule-color <line-color-list> | <auto-line-color-list> currentcolor グリッドコンテナ、フレックスコンテナ、マルチカラムコンテナ、メイソンリコンテナ no n/a 算出値型による 文法順 指定通り
column-rule-outset <length-percentage> 50% グリッドコンテナ、フレックスコンテナ、マルチカラムコンテナ、メイソンリコンテナ no crossing gap width参照 算出値型による 文法順 指定通り
column-rule-style <line-style-list> | <auto-line-style-list> none グリッドコンテナ、フレックスコンテナ、マルチカラムコンテナ、メイソンリコンテナ no n/a 離散値 文法順 指定通り
column-rule-width <line-width-list> | <auto-line-width-list> medium グリッドコンテナ、フレックスコンテナ、マルチカラムコンテナ、メイソンリコンテナ no n/a 算出値型による 文法順 絶対長のリスト、border幅としてスナップされた値、または下記条件下で0
row-rule <gap-rule-list> | <gap-auto-rule-list> 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 文法順 個別プロパティ参照
row-rule-break none | spanning-item | intersection spanning-item グリッドコンテナ、フレックスコンテナ、マルチカラムコンテナ、メイソンリコンテナ no n/a 離散値 文法順 指定通り
row-rule-color <line-color-list> | <auto-line-color-list> currentcolor グリッドコンテナ、フレックスコンテナ、マルチカラムコンテナ、メイソンリコンテナ no n/a 算出値型による 文法順 指定通り
row-rule-outset <length-percentage> 50% グリッドコンテナ、フレックスコンテナ、マルチカラムコンテナ、メイソンリコンテナ no crossing gap width参照 算出値型による 文法順 指定通り
row-rule-style <line-style-list> | <auto-line-style-list> none グリッドコンテナ、フレックスコンテナ、マルチカラムコンテナ、メイソンリコンテナ no n/a 離散値 文法順 指定通り
row-rule-width <line-width-list> | <auto-line-width-list> medium グリッドコンテナ、フレックスコンテナ、マルチカラムコンテナ、メイソンリコンテナ no n/a 算出値型による 文法順 絶対長のリスト、border幅としてスナップされた値、または下記条件下で0
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-outset <'column-rule-outset'> 個別プロパティ参照 column-rule-outsetおよびrow-rule-outsetと同じ 個別プロパティ参照 個別プロパティ参照 個別プロパティ参照 文法順 個別プロパティ参照
rule-paint-order 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-width <'column-rule-width'> 個別プロパティ参照 column-rule-widthおよびrow-rule-widthと同じ no 個別プロパティ参照 個別プロパティ参照 文法順 個別プロパティ参照

課題一覧

これらの値をBikeshedで検討すること。
"0に強制"する挙動は値のリストにも適用されるべきか? もしそうなら、整列していないリストの場合どのように扱うべきか?