1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【CSS】CSSグリッドについて

1
Last updated at Posted at 2025-12-03

記事概要

CSSグリッドについて、まとめる。

CSSグリッド(タイル型レイアウト)とは

壁にタイルを敷き詰めるように、同じ大きさのボックスを等しい間隔で並べるレイアウト

画面やテキストなどの多くの情報を整理して一度に見せられるため、散らかった印象ではなく、整った印象になる

Image from Gyazo

グリッドライン

行・列の境界線であり、grid-columnプロパティやgrid-rowプロパティで指定する数値は下記を参照

Image from Gyazo

/* 左上の要素に対して適用 */
.hoge {
  /* 横幅をグリッドライン1~3番目に指定 */
  grid-column: 1 / 3;
  /* 縦幅をグリッドライン1~3番目に指定 */
  grid-row: 1 / 3;
}

Image from Gyazo

レイアウト設定

grid-template-columnsプロパティ

display: grid;と併せて設定し、子要素における横方向の並べ方を設定する

/* 1列に4つのグリッドアイテムを並べる */
.hoge {
  display: grid;
  grid-template-columns: 30px 30px 40px 30px;
}

Image from Gyazo

  • repeat関数
    repeat(繰り返す数, 要素の幅)と記述することで、同じ数値が並ぶ時にスッキリとまとまる

    /* 1列に6つのグリッドアイテムを並べる */
    .hoge {
      display: grid;
      grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
    }
    
    /* 1列に6つのグリッドアイテムを並べる */
    .hoge {
      display: grid;
      grid-template-columns: repeat(6, 1fr);
    }
    
  • minmax
    minmax(最小値, 最大値)と記述することで、要素の幅に最小値と最大値を指定する

    /* 要素の幅が120pxよりも小さくならず、1frよりも大きくならない */
    .hoge {
      display: grid;
      grid-template-columns: repeat(6, minmax(120px, 1fr));
    }
    
  • aut-fit
    1列の要素数を指定せず、画面の幅に合わせて要素を折り返して次の行に表示させる

    /* 画面の幅に合わせて要素を折り返す */
    .hoge {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    }
    

grid-template-rowsプロパティ

display: grid;と併せて設定し、子要素における縦方向の並べ方を設定する

/* 1行に3つのグリッドアイテムを並べる */
.hoge {
  display: grid;
  grid-template-columns: 1fr 1fr 2fr 1fr;
  grid-template-rows: 30px 40px 30px;
  gap: 5px;
}

Image from Gyazo

grid-columnプロパティ

grid-column: 始まりのライン / 終わりのライン;と記述することで、横の範囲をグリッドライン単位で指定する

/* 左上の要素に対して適用 */
.hoge {
  grid-column: 1 / 3;
}

Image from Gyazo

grid-rowプロパティ

grid-row: 始まりのライン / 終わりのライン;と記述することで、縦の範囲をグリッドライン単位で指定する

/* 左上の要素に対して適用 */
.hoge {
  grid-row: 1 / 3;
}

Image from Gyazo

gapプロパティ

display: grid;と併せて設定し、子要素同士の間に余白を設定する

/* グリッドアイテム同士の間に余白5pxを設定する */
.hoge {
  display: grid;
  grid-template-columns: 30px 30px 40px 30px;
  gap: 5px;
}

Image from Gyazo

単位

fr

親要素から見た子要素の大きさを割合で指定する

/* 1:1:2:1の割合でグリッドアイテムを表示する */
.hoge {
  display: grid;
  grid-template-columns: 1fr 1fr 2fr 1fr;
  gap: 5px;
}

Image from Gyazo

2カラムレイアウト

横幅の設定は自由だが、下記が多い
メインエリア:サイドバー = 2:1
メインエリア:サイドバー = 3:1

1:1の場合、スプリットスクリーンと呼ぶ

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?