CSS GridやFlexboxに罫線を引く
GridやFlexboxのアイテム間に、CSSだけで罫線を引けるようになりました。
これまではアイテムごとにborderを指定したり、疑似要素を配置したり、背景色で線のように見せたりするなどの工夫が必要でした。CSS Gap Decorationsのcolumn-ruleやrow-ruleを使うことで、GridやFlexboxのgapに対して、わかりやすく簡単に罫線を引くことができるようになります。
column-ruleは列方向のgap、row-ruleは行方向のgapを装飾するプロパティです。Gridでは、各gapに対して線の太さやスタイルを順番に指定できます。Flexboxでも、折り返しなどによって生じたgapに合わせて罫線が描画されます。
.grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-template-rows: repeat(4, 1fr);
gap: 10px;
column-rule-width: 1px, 3px, 5px;
column-rule-style: solid, dashed, solid;
column-rule-color: red;
row-rule-width: 1px, 3px, 5px;
row-rule-style: dashed, solid, dashed;
row-rule-color: blue;
rule-overlap: column-over-row;
}
この例では、4列・4行のグリッドに対して、列方向と行方向のgapに異なる罫線を指定しています。column-rule-widthやrow-rule-styleのように複数の値をカンマ区切りで指定すると、gapごとに異なるスタイルを適用できます。
また、rule-overlapを指定すると、行方向と列方向の罫線が交差する部分で、どちらの罫線を上に描画するかを制御できます。
2026年6月時点では、ChromeとEdgeの149以降で利用できます。非対応ブラウザーでは罫線の指定が無視され、通常のgapだけが表示されます。そのため、装飾目的であれば導入しやすい機能です。
Gap decorations: Now available in Chromium | Blog | Chrome for Developers
HM
