概要

grid-rowは、CSSGridレイアウトでアイテムの行方向の配置を指定するプロパティです。このプロパティを使用することで、グリッド内のどの行からどの行までアイテムを配置するか、またはどの範囲を占めるかを簡単に設定できます。レイアウトを自由にカスタマイズするための便利な機能であり、特に縦方向の配置が重要なデザインにおいてその真価を発揮します。

grid-rowの基本

構文

.grid-item {
grid-row: <start> / <end>;
}
  • <start>:アイテムの配置が始まる行ラインを指定します。
  • <end>:アイテムの配置が終わる行ラインを指定します。 また、アイテムの占める行数を指定する場合は以下のように記述します。
.grid-item {
grid-row: span <number>;
}

主な指定方法

  1. 数値による開始位置と終了位置の指定 指定した行ラインの間にアイテムを配置します。
  2. spanによるスパン指定 開始位置から指定した行数分を占有します。
  3. 名前付きライン グリッドラインに名前を付けて、その名前を使って配置位置を指定します。

各指定方法の詳細と使用例

数値による開始位置と終了位置の指定

数値を使ってgrid-rowを指定することで、アイテムを正確な行の位置に配置できます。以下の例では、アイテムを1行目から3行目まで配置しています。

.container {
display: grid;
grid-template-rows: repeat(4, 100px); /* 4行のグリッド */
}
.item1 {
grid-row: 1 / 3; /* 1行目から3行目までを占有 */
}
.item2 {
grid-row: 3 / 5; /* 3行目から5行目までを占有(5行目が仮想的に作成される) */
}
<div class="container">
<div class="item1">Item 1</div>
<div class="item2">Item 2</div>
</div>

この設定では、Item 1は1行目から3行目まで、Item 2は3行目から5行目(存在しない場合は仮想的に作られる)までの範囲に配置されます。

spanによるスパン指定

spanキーワードを使うと、開始位置から何行分を占めるかを指定できます。これにより、より直感的にレイアウトの幅を調整できます。

.container {
display: grid;
grid-template-rows: repeat(4, 1fr); /* 4行のグリッド */
}
.item1 {
grid-row: span 2; /* 2行分を占有 */
}
.item2 {
grid-row: span 3; /* 3行分を占有 */
}
<div class="container">
<div class="item1">Item 1</div>
<div class="item2">Item 2</div>
</div>

この例では、Item 1は最初の空いている場所から2行分、Item 2は次に空いている場所から3行分を占有します。

名前付きラインの指定

名前付きラインを使用することで、数値ではなく名前で位置を指定でき、コードの可読性が向上します。

.container {
display: grid;
grid-template-rows: [row1-start] 100px [row2-start] 100px [row3-start] 100px [row4-end];
}
.item1 {
grid-row: row1-start / row3-start; /* row1からrow3まで占有 */
}
.item2 {
grid-row: row3-start / row4-end; /* row3からrow4まで占有 */
}
<div class="container">
<div class="item1">Item 1</div>
<div class="item2">Item 2</div>
</div>

この設定では、グリッドラインに名前を付けることで、視覚的にわかりやすくアイテムの配置を指定できます。デザインの変更があった場合も、名前で調整することで柔軟に対応可能です。

使用シーンと注意点

  • コンテンツの高さ調整
    grid-rowを活用することで、各アイテムの高さを柔軟に調整し、見やすいデザインを作ることができます。たとえば、画像ギャラリーで異なる高さのアイテムを統一感のある配置にできます。
  • レスポンシブレイアウト: メディアクエリと組み合わせることで、デバイスごとに異なる行配置を設定できます。小さな画面では1行、大きな画面では複数行にわたるアイテム配置が可能です。
  • 複雑なレイアウトの作成: ダッシュボードやカスタムレイアウトで、アイテムを正確な位置に配置するのに最適です。自由度が高いため、デザインの幅が広がります。

注意点

  • 行ラインの番号の間違い: 番号指定で行ラインを設定する際、誤った番号を設定するとアイテムが意図しない位置に配置されることがあります。特に、行とカラムの設定が複雑な場合は、設定の確認が必要です。
  • スパンの重複: 複数のアイテムが同じ行を占める設定にすると、レイアウトが崩れる可能性があります。スパンの設定を重複させないように注意しましょう。

まとめ

grid-rowプロパティは、CSSGridレイアウトでアイテムの行配置を自在にコントロールするための強力なツールです。数値指定、スパン指定、名前付きラインなどの方法を使い分けることで、複雑なデザインをシンプルに構築できます。レスポンシブ対応や複雑なダッシュボードレイアウトの構築に最適なプロパティを活用して、柔軟で洗練されたWebデザインを作成してみてください。