ブログblog

CSS gridレイアウトについて

Writer: tokuyasu 更新日:2023/08/01

こんにちは、デジナーレ福岡オフィスの徳安です。  

この記事では、CSSのgridレイアウトについて説明いたします。

 gridレイアウトの特徴

floatflexboxレイアウトは、
アイテムを一方的に並べることでレイアウトを作る
「1次元」のレイアウト手法です。

それに対し、gridレイアウトは縦横それぞれにグリッド線を引き、
格子状のセルを作成し、そこにコンテンツをはめ込む、
「2次元」のレイアウト手法です。

 webサイト全体をグリッドでレイアウトする例

1. 親要素にdisplay : gridを指定する。
 (今回はcontainerを親要素にします。)
2. 作りたいグリッドの行、列のサイズを決める。
 ( grid-template-rows: 100px 1fr 100px;
  grid-template-columns: 200px 1fr 200px;
  row= 縦幅のサイズ、columns=横幅のサイズ
 ※frとはfraction(比率)のこと)
3. エリアに名前を付ける。
 今回の場合、3×3のレイアウトにするので、
すべてに名前を付ける。
  grid-template-areas:
    "header header header"
    "side1 main side2"
    "footer footer footer";
    のように半角スペースで区切って、指定する。

 

4. 各エリアに配置する。
【例】

 均等幅の複数行均等レイアウトの例

1. 親要素にdisplay : gridを指定する。
2. グリッドの列サイズをrepeatを使って、指定する。
   grid-template-columns: repeat(5, 1fr);
   ※1fr 1fr 1fr 1fr 1frをまとめて記述

 

 
このように簡単にグリッドレイアウトを作成できます。

また、特定の要素のサイズを変更したいときには、

変更したい要素にclassを追加して、
grid-column grid-row を使って設定ができます。

 

【例】

「始まりのライン/終わりのライン」で記述することで、調節できます。
上記の例のサイズだと、グリッドラインを引いた、
1番目のラインから3番目のラインまでのサイズになります。
(グリッド2つ分)
  

Grid Layoutを学べば、今までの概念を覆すような方法で
ウェブサイトのレイアウトを効率的に構築できます。
ここまで読み進めていただき、ありがとうございました。