レイアウト

gap

gap は、フレックスボックスやグリッド、段組みの中で、項目の行と行の間(row-gap)と、列と列の間(column-gap)をまとめて指定します。

構文

<'row-gap'> <'column-gap'>?

プレビュー

1234
プリセット
見本
項目
右下の角をドラッグするとサイズを変えられます

コード

.box {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 8px;
}

コントロール

row-gap16px
column-gap8px
1234

解説

値の書き方

行の間、列の間の順にスペースで区切って書きます(gap: 16px 8px)。1 つだけ書くと、両方が同じ値になります。それぞれ row-gap・column-gap として別々に書くこともできます。

  • normal:初期値です。フレックスボックスとグリッドでは 0、段組み(columns)の列の間では 1em です。
  • 長さ・%:負の値は使えません。% は箱の中身の幅や高さに対する割合です。

空くのは項目の間だけ

gap は項目と項目の間にだけ空きを入れ、箱の端(最初の項目の前や、最後の項目のあと)には入れません。端も空けたいときは padding を使います。

このページのプレビューは、補助の宣言で display: flex と flex-wrap: wrap にして、箱の幅の 30% の項目を 4 つ並べています。フレックスボックスで折り返すときは、列の間の空きも 1 行に入るかどうかの計算に入るので、column-gap を大きくすると 3 つが 1 行に入らなくなり、2 つずつに分かれます。

古い名前

以前はグリッド専用の grid-gap・grid-row-gap・grid-column-gap という名前でした。今のブラウザはどちらも読みますが、新しく書くときは gap を使います。

コメント