CSS column-rule-break プロパティ
利用可能性は限定的
この機能はベースラインではありません。最も広く使用されているブラウザーの一部で動作しません。
Want more browser support for this feature? Tell us why.
Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。
column-rule-break は CSS のプロパティで、列間罫が行のギャップ(隙間)と交差する箇所で、その列間罫を区間に分割する動作を設定します。
試してみましょう
column-rule-break: none;
column-rule-break: normal;
column-rule-break: intersection;
<section id="default-example">
<div id="example-element">
<i>A</i>
<i>B</i>
<i>C</i>
<i>D</i>
<i>E</i>
<i>F</i>
<i>G</i>
<i>H</i>
<i>I</i>
<i>J</i>
<i>K</i>
<i>L</i>
<i>M</i>
<i>N</i>
<i>O</i>
<i>P</i>
<i>Q</i>
<i>R</i>
<i>S</i>
<i>T</i>
<i>U</i>
<i>V</i>
<i>W</i>
<i>X</i>
<i>Y</i>
<i>Z</i>
</div>
</section>
#example-element {
display: grid;
grid-template-columns: repeat(7, 1fr);
column-rule: solid thick orange;
row-rule: solid thick lavender;
gap: 15px;
rule-overlap: column-over-row;
}
#example-element i {
padding: 5px;
}
構文
/* キーワード */
column-rule-break: none;
column-rule-break: normal;
column-rule-break: intersection;
/* グローバル値 */
column-rule-break: inherit;
column-rule-break: initial;
column-rule-break: revert;
column-rule-break: revert-layer;
column-rule-break: unset;
値
このプロパティは、以下のリストにある単一のキーワードで指定します。
none-
列間罫が行のギャップと交差する場合でも、列間罫が途切れることはありません。つまり、連続した列間罫が、コンテナーの高さ全体にわたって、端から端まで描画されます。
normal-
グリッドコンテナーおよびフレックスコンテナーでは、
noneと同様に動作します。段組みでは、intersectionと同様に動作します。これがデフォルト値です。 intersection-
列間罫は、行のギャップと交差するたびに途切れます。列間罫の区間は、コンテナーとギャップの端で始まったり終わったりします。
解説
column-rule-break プロパティは、列間罫が行のギャップを横切る際に、その線を複数の区間に分割するかどうかを指定します。
列間罫は、列のギャップに 1 つ以上の区間として描画されます。この区間は、別個の列にある隣接するグリッドアイテムの間、フレックスレイアウトにおいて flex-direction に応じてフレックスアイテムまたはフレックス行の間、段組みレイアウトにおいて段の間に現れます。
column-rule-break プロパティは、区切りが発生するかどうかのみを決定します。デフォルトでは、それぞれの区間はギャップの端(またはコンテナーの端)で開始および終了するため、列間罫の区間の切れ目は行のギャップの高さと同じになります。行のギャップが 0 の場合、この区切りは表示されないことがあります。両端の位置は、column-rule-inset プロパティで制御できます。
column-rule-break が none に設定されている場合、切れ目は発生しません。この場合、列間罫は連続し、column-rule-inset の値は、コンテナーの端にある列間罫の左右の端にのみ影響します。切れ目がある場合、column-rule-inset プロパティは、各列間罫の区間の開始点と終了点に影響します。
column-rule-break プロパティは、row-rule-break プロパティと同様に、rule-break 一括指定を使用して設定できます。
列間罫がデフォルトで単一の連続した区間で構成されるか、行のギャップと交差する際に区切られる複数の区間で構成されるかは、コンテナーの種類によって異なります。
グリッドコンテナー
グリッドコンテナーでは、デフォルトで、列間罫は行のギャップと交差する部分でも途切れることなく続き、これは column-rule-break: none と同じ挙動です。column-rule-break: intersection を設定すると、本来なら交差するはずの区間が、列のギャップごとに強制的に区切られるようになります。
デフォルトで、列間罫は途切れません。チェックボックスをオンにすると、column-rule-break が intersection に設定され、本来は連続するる線がすべての「交差」箇所で途切れるようになります。デフォルトでは、区間の間隔は row-gap の高さに設定されており、この場合では 20px に設定されています。
フレックスコンテナー
フレックスボックスでは、列間罫がデフォルトですべての行のギャップで折り返されるかどうかは、flex-directionの設定によって決まります。書字方向が横書きの場合、flex-direction が row または row-reverse に設定されている場合、列間罫はそれぞれの行のギャップで区切られ、これは column-rule-break: intersection と同等です。flex-direction が column または column-reverse の場合、列間罫はデフォルトで連続し、これは column-rule-break: none と同等です。
横書きでは、column-rule-break を intersection に設定しても、その影響は column および column-reverse のシナリオにおける列間罫にのみ及びます。
段組みコンテナー
段組みコンテナーでは、デフォルトの normal は intersection と同じ動作をします。行の装飾線はデフォルトで連続しますが、列間罫は交差するたびに途切れます。列間罫は、行のギャップがあるたびに区間に分かれ、それぞれの区間はギャップの端から始まり、端で終わります。これらの開始位置と終了位置は、column-rule-inset プロパティを使用して変更できます。
none を選択すると、列間罫は区間に分割されなくなります。代わりにコンテナーの上端から下端に達するまで連続するようになります。column-rule-inset プロパティを使用することで、列のギャップ装飾の両端の位置を調整することができます。
公式定義
DB に値が見つかりません!形式文法
column-rule-break =
none |
normal |
intersection
例
>基本的な使い方
この例では、column-rule-break プロパティを使用して、グリッドコンテナー内で罫線をそれぞれの区間に分割するので、列間罫は行のギャップの間に作成されます。row-gap プロパティを変更すると、区間のサイズが変わります。
HTML
50 件のアイテムからなるリストと、行のギャップの幅を選択するためのスライダーを作成します。簡潔にするため、HTML の大部分は省略しています。
<ul>
<li>1</li>
<li>2</li>
...
<li>49</li>
<li>50</li>
</ul>
CSS
順序なしリストを 8 列のコンテナーとして定義し、grid-template-columns プロパティで行と列を作成し、list-style-type を none に設定して箇条書き記号を除去します。gap を 20px に指定して、行間と列間に 20px の実線の行間罫と列間罫を引く余地を確保します。また、行の装飾の上に列の装飾が描画されるように、rule-overlap プロパティを設定します。最後に、列間罫がすべての交点で途切れるように設定します。
ul {
display: grid;
grid-template-columns: repeat(8, 1fr);
list-style-type: none;
gap: 20px;
column-rule: 10px solid olive;
row-rule: 10px solid palegoldenrod;
rule-overlap: column-over-row;
column-rule-break: intersection;
}
簡潔にするため、残りの CSS は省略しています。
結果
行のギャップを広くすると、列の区間のギャップが広がる様子に注目してください。行のギャップを 0px にすると、列の装飾が連続しているように表示されますが、実際はそうではありません。区間のギャップが 0px になると目に見えないかもしれませんが、区間はその間隔の位置で始まり、終わっているため、column-rule-inset プロパティで設定されたオフセットは引き続き適用されます。
仕様書
| 仕様書 |
|---|
| CSS Gaps Module Level 1> # propdef-column-rule-break> |
ブラウザーの互換性
関連情報
row-rule-breakrule-break一括指定rule-inset一括指定rule-overlaprule-visibility-itemsrule一括指定- CSS 隙間モジュール