Chapter 16無料公開

溝/ガター(Gutters)

溝、ガター(Gutters)は、rowとcolumn双方向に用意された、グリッド間の余白です。

1つ1つのグリッドトラックの間に付く、余白になります。

以下の余白部分が、ガターに該当します。

ガター付与のプロパティがないFlexbox vs ガター付与のプロパティが用意されているCSSグリッド

実は、グリッド軸(Gird axis)のチャプターで取り組んだ、Flexboxの一次元の軸との比較の例で、ガターを付与する記述が、コードに含まれていました。

/* 他省略 */

.container-body {
  /* コンテナーに対する、CSSグリッドのスタイル */
  display: grid;
  /* ✅ columnとrowの2方向の軸を同時に操作している */
  grid-template-columns: 1fr 1fr 1fr;
  grid-template-rows: 1fr 1fr 1fr;

  /* 👇 ガター付与 */
  grid-row-gap: 1em;

  /* 他省略 */
}

/* 他省略 */

そして、Flexboxの場合で実装したソースコードには、 「❌ rowアイテムに一括でギャップを与えるスタイルがFlexboxには無いので、marginで対処するしかない」 と書かれていた部分に気がつきましたか?

実は、Flexboxには、グリッドセル間の余白を定義するプロパティが、存在しません。

ということは、1つ1つのアイテム要素の周り、もしくはトラックの間に、marginを付与するなどして対応をするしかないのです。

確かに、共通するclass名を付与することで、複数のアイテムに共通するmarginを付与することはできますが、全て自分で用意しなければならないので、少し不便です。

その不便さを改善したのが、CSSグリッドのガターです。

Flexboxにも、溝、ギャップの考え方はあるのですが、ガター付与のためのプロパティはないので、つける場合に、人によって統一性がないという問題もありました。

しかし、CSSグリッドには、ガター付与のためのプロパティがあるので、その心配はありません。

CSSグリッド、ガター付与のプロパティ

ガターを付与するには、以下のプロパティが用意されています。

プロパティ名 役割
gap 縦方向と横方向のグリッドトラック間、 両方の余白 を定義するプロパティ
row-gap 縦方向のグリッド間の余白を定義するプロパティ
column-gap 横方向のグリッド間の余白を定義するプロパティ

この3つとも、全て使用頻度の高いものなので、これからも活用する機会が多いでしょう。

以上が、CSSグリッドを学習していく上で、知っておきたい用語です。

次のチャプターからは、具体的にCSSグリッドで用意されているプロパティと値を、実例を見ながら学習していきます。