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