WEBサイト制作・アプリ開発・システム開発・ブランディングデザイン制作に関するご相談はお気軽にご連絡ください。
構想段階からじっくりとヒアリングし、お客様の課題にあわせたアプローチ手法でお客様の“欲しかった”をカタチにしてご提案いたします。
Blog スタッフブログ
CSS
WEB制作
[CSS]知っておくと便利なグリッドレイアウト
グリッドレイアウト(CSS Grid Layout)とは、Webページの要素を縦横の格子状(グリッド)に配置できるCSSのレイアウト手法です。
他にレイアウトによく用いられるものはfloat 、 position、Flexbox ですが複数行・複数列ではコードが複雑になりがちです。
しかし、複数行・複数列を含む複雑なレイアウトでは、コードが煩雑になりがちでした。
gridを利用すると、行(Row)と列(Column)を定義するだけで、要素を簡単に配置できます。
複数行・複数列レイアウトの商品一覧を例として基本機能を紹介します。
グリッドで作る3列レイアウト
このようなhtmlを3列づつのレイアウトにします。
溢れたitemは次の行に表示します。
<div class="itemList">
<article class="item">
<img src="img/item01.jpg" alt="商品1">
<h3>商品名が入ります</h3>
<p>商品の説明文が入ります。</p>
</article>
<article class="item">
<img src="img/item02.jpg" alt="商品2">
<h3>商品名が入ります</h3>
<p>商品の説明文が入ります。</p>
</article>
<article class="item">
<img src="img/item03.jpg" alt="商品3">
<h3>商品名が入ります</h3>
<p>商品の説明文が入ります。</p>
</article>
<article class="item">
<img src="img/item04.jpg" alt="商品3">
<h3>商品名が入ります</h3>
<p>商品の説明文が入ります。</p>
</article>
<article class="item">
<img src="img/item05.jpg" alt="商品3">
<h3>商品名が入ります</h3>
<p>商品の説明文が入ります。</p>
</article>
<article class="item">
<img src="img/item06.jpg" alt="商品3">
<h3>商品名が入ります</h3>
<p>商品の説明文が入ります。</p>
</article>
</div>CSSの全体像
.itemList {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 24px;
}
@media screen and (max-width: 767px) {
.itemList {
grid-template-columns: 1fr;
}
}
.item {
padding: 16px;
border: 1px solid #ddd;
border-radius: 8px;
background: #fff;
}
.item img {
width: 100%;
aspect-ratio: 4 / 3;
object-fit: cover;
border-radius: 6px;
}
.item h3 {
margin-top: 12px;
font-size: 18px;
}
.item p {
margin-top: 8px;
font-size: 14px;
}解説
まず親要素 .itemList に display: grid; を指定します。
そうすると子要素である .item がグリッドアイテムとして配置されます。
.itemList {
display: grid; //グリッドを有効にします
grid-template-columns: repeat(3, 1fr); //何列で表示するか
gap: 24px; //グリッドアイテムの間隔
}
@media screen and (max-width: 767px) { //レスポンシブ
.itemList {
grid-template-columns: 1fr; //一列で表示
}
}grid-template-columns: repeat(3, 1fr); なので、均等に3分割で表示されます。
もし列を変える場合は”3”の部分を変更します。

まとめ
CSS Gridは、複数行・複数列のレイアウトをシンプルなコードで実現できる非常に便利な機能です。
今回紹介した商品一覧以外にも利用に向いているケースは多々あります。
- ブログ記事一覧
- ギャラリー
- カードレイアウト
- ダッシュボード
- ランディングページ
複数行・複数列のレイアウトを作る際は、まずGridを検討してみるとよいでしょう。