CSS プロパティ grid-row

CSSのプロパティgrid-row:グリッドアイテムの行スパンを正確に制御する

CSSのプロパティgrid-row:グリッドアイテムの行スパンを正確に制御する

grid-row プロパティは、CSSグリッドレイアウトの重要なプロパティの一つであり、グリッドコンテナ内でのグリッドアイテムの行の位置とスパンを正確に制御することを可能にします。 grid-row の値を設定することで、グリッドアイテムがどのグリッド線から始まり、どのグリッド線で終わるかを指定し、柔軟なレイアウト制御を実現できます。

grid-row プロパティ値

grid-row プロパティには、以下の値を設定できます。

1. grid-row-startgrid-row-end の省略形

grid-row プロパティでは、グリッドアイテムの開始グリッド線と終了グリッド線を同時に設定できます。

  • 構文: grid-row: <grid-row-start> / <grid-row-end>;
  • 例: grid-row: 2 / 4; (アイテムは2番目のグリッド線から始まり、2行に渡って4番目のグリッド線で終わります)

2. グリッド線番号の使用

グリッド線を表すために、1から始まる数字を直接使用できます。

3. span キーワードの使用

span キーワードは、グリッドアイテムがスパンする行数を指定するために使用します。

  • 例: grid-row: 1 / span 2; (アイテムは1番目のグリッド線から始まり、2行に渡ってスパンします)

4. 名前付きグリッド線の使用

グリッドコンテナの定義で名前付きグリッド線を使用した場合は、grid-row の設定にグリッド線名を使用できます。

コード例

以下のコードは、grid-row プロパティを使用してグリッドアイテムの行スパンを制御する方法を示しています。


<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>grid-row の例</title>
  <style>
    .grid-container {
      display: grid;
      grid-template-rows: 50px 50px 50px;
      grid-template-columns: repeat(3, 1fr);
      gap: 10px;
      background-color: #2196F3;
      padding: 10px;
    }

    .grid-container > div {
      background-color: rgba(255, 255, 255, 0.8);
      text-align: center;
      padding: 20px 0;
      font-size: 30px;
    }

    .item-a {
      grid-row: 1 / 3; /* 1番目のグリッド線から始まり、2行に渡ってスパン */
    }

    .item-d {
      grid-row: span 2; /* 2行に渡ってスパン */
    }
  </style>
</head>
<body>

<div class="grid-container">
  <div class="item-a">A</div>
  <div class="item-b">B</div>
  <div class="item-c">C</div>  
  <div class="item-d">D</div>
  <div class="item-e">E</div>
  <div class="item-f">F</div>
</div>

</body>
</html>

ブラウザの互換性

grid-row プロパティは、主要なブラウザで広くサポートされています。

ブラウザ バージョン
Chrome 57+
Firefox 52+
Safari 10.1+
Edge 16+
Opera 44+

詳細については、Can I use を参照してください。

まとめ

grid-row プロパティは、開発者にグリッドアイテムの行の位置とスパンを強力に制御する機能を提供し、CSSグリッドレイアウトを使用する際に不可欠なツールです。

関連QA

1. grid-rowgrid-column の違いは何ですか?

grid-row はグリッドアイテムの**行**の位置とスパンを制御し、grid-column はグリッドアイテムの**列**の位置とスパンを制御します。

2. grid-row を使用して、グリッドアイテムを最後の行に配置するにはどうすればよいですか?

grid-row-end-1 を指定することで、グリッドアイテムを最後の行に配置できます。


.item {
  grid-row-end: -1;
}

3. グリッドアイテムがグリッドコンテナよりも大きくなった場合、どうなるのでしょうか?

グリッドアイテムがグリッドコンテナよりも大きくなった場合、グリッドコンテナの境界線をオーバーフローします。オーバーフローの動作は、overflow プロパティで制御できます。