概要

grid-row-gapは、CSSGridレイアウトで行間のスペース(隙間)を調整するためのプロパティです。このプロパティを使うことで、各行の要素が詰まりすぎることを防ぎ、デザインの見た目を整えることができます。特に、コンテンツの多いレイアウトや、行間に余裕を持たせたい場合に非常に役立つツールです。

grid-row-gapの基本

構文

.grid-container {
display: grid;
grid-row-gap: <長さ>;
}

<長さ>には、行間のスペースを指定する値を設定します。px%emremなどの単位を使ってスペースの幅を調整できます。

主な単位

  1. px(ピクセル) 固定幅のスペースを指定します。
  2. %(パーセント) コンテナの高さに対する割合でスペースを指定します。
  3. em / rem フォントサイズに基づいてスペースを指定し、文字の大きさに応じた柔軟な隙間が設定できます。
  4. その他の単位 vh、vwなどのビューポート単位や、ex、chなどのフォントに関連する単位も使用可能です。

各単位の詳細と使用例

ピクセル(px)による固定幅

ピクセル単位は、具体的な数値で固定されたスペースを作成します。視覚的に一貫した行間を保つことができます。

.container {
display: grid;
grid-template-rows: repeat(3, 100px);
grid-row-gap: 20px; /* 各行の間に20pxのスペース */
}
<div class="container">
<div>Row 1</div>
<div>Row 2</div>
<div>Row 3</div>
</div>

この例では、各行間に20pxのスペースが設けられ、要素同士が視覚的に分離されます。

パーセント(%)による割合指定

パーセント単位を使うと、コンテナの高さに応じてスペースが変動します。レスポンシブデザインや動的な高さ調整が必要な場合に適しています。

.container {
display: grid;
grid-template-rows: repeat(4, 1fr);
grid-row-gap: 10%; /* コンテナの高さの10%を行間のスペースとして設定 */
}
<div class="container">
<div>Row 1</div>
<div>Row 2</div>
<div>Row 3</div>
<div>Row 4</div>
</div>

この場合、行間のスペースがコンテナの高さに比例して調整されます。

em / remによるフォント基準のスペース設定

emremはフォントサイズを基準にスペースを指定でき、文字の大きさに応じたレイアウト調整が可能です。

.container {
display: grid;
grid-template-rows: repeat(2, 1fr);
grid-row-gap: 1.5em; /* フォントサイズの1.5倍のスペースを行間に設定 */
}
<div class="container">
<div>Row 1</div>
<div>Row 2</div>
</div>

この設定では、各行間にフォントサイズの1.5倍のスペースが設けられ、文字の大きさに合わせた柔軟なレイアウトが実現できます。

行間のスペースなしの場合

grid-row-gapを指定しない場合、行間にはスペースができず、行同士が密着します。この設定は、スペースを空けないデザインが必要な場合に適しています。

.container {
display: grid;
grid-template-rows: repeat(3, 1fr);
/* grid-row-gap: 0; 省略可能 */
}
<div class="container">
<div>Row 1</div>
<div>Row 2</div>
<div>Row 3</div>
</div>

使用シーンと注意点

  • カードレイアウト
    grid-row-gapを使うことで、カード同士の間に適切なスペースを設け、視覚的に見やすいレイアウトが実現できます。
  • 記事やコンテンツのリスト: 行間のスペースを設定することで、各項目が独立して見えるようになり、読みやすさが向上します。
  • レスポンシブデザイン
    %emの単位を使ってスペースを調整することで、デバイスに応じた柔軟なレイアウトが可能です。

注意点

  • gapプロパティとの併用: 現在ではgapプロパティを使用することで、grid-row-gapgrid-column-gapを一括で設定することが可能です。全体の隙間を一括で管理したい場合には、gapプロパティを活用するのが効率的です。
  • 視覚的な確認: 行間のスペースはデザインのバランスに大きく影響するため、実際の表示を確認しながら適切な値を設定することが重要です。特に、フォントサイズに基づくemremを使う場合は、意図しないサイズになることがあるため、確認が必要です。

まとめ

grid-row-gapプロパティは、CSSGridレイアウトで行間のスペースを調整するための非常に便利なツールです。各単位を理解し、デザインに適したスペースを設定することで、視覚的に整ったレイアウトを実現できます。特にコンテンツの多いページやレスポンシブデザインにおいては、その効果を大いに発揮するため、ぜひ活用してみてください。