Web制作コラム

FlexboxとGrid|どちらで組むかの決め方

コーディング

2つとも並べるための仕組みですが、得意な形が違います。選び分けの基準と、実務で詰まりやすいところをまとめます。

Flexbox と Grid は、要素を並べるための CSS の仕組みです。どちらも主要なブラウザで問題なく使えるので、いまから組むなら float を使う理由はありません。

違いは「何次元か」

  • Flexbox … 1方向に並べる。横一列、または縦一列
  • Grid … 行と列の両方を決める。マス目に当てはめる

ナビゲーションのリンクを横に並べる、ボタンとテキストを縦に積む、といった用途は Flexbox です。カードを3列×2行で並べる、ページ全体をヘッダー・サイド・本文・フッターに区切る、という用途は Grid です。

迷ったときの判断

作りたい形向いているほう
横並びのメニュー、タグの一覧Flexbox
ラベルと値のような2つの組み合わせFlexbox
カードを均等に並べる(折り返しあり)どちらでもよい。列数を固定するなら Grid
列の幅を個別に変えたい表組みGrid
ページ全体の骨組みGrid
中身の量で幅が決まってほしいFlexbox

※ 横にスクロールできます

入れ子にして併用できます。全体を Grid で区切り、その中の1マスの中身を Flexbox で並べる、という組み合わせが実務では多い形です。

詰まりやすいところ

文字が折り返さず、はみ出す

Flexbox の子要素は、既定で中身より小さくなりません。長い URL や英単語が入ると、親からはみ出します。折り返してよい要素に min-width: 0 を指定すると収まります。Grid の場合は minmax() の最小値を 0 にします。

高さが揃わない・揃いすぎる

Flexbox は既定で子要素の高さが揃います。揃えたくない場合は align-items: flex-start を指定します。逆にカードの高さを揃えたいのに揃わない場合は、カード自体ではなく中のラッパーに高さが効いていないかを確認します。

余白を margin で付けてしまう

並べる間隔は gap で指定します。margin で付けると、折り返したときに端の余白が残り、左右が揃わなくなります。gap は Flexbox でも使えます。

列数をスマホで変える

Grid なら grid-template-columns をメディアクエリで切り替えます。repeat(auto-fit, minmax(240px, 1fr)) と書くと、画面幅に応じて列数が自動で変わるため、メディアクエリ自体が不要になる場面もあります。

古いサイトを改修するとき

数年前に作られたサイトでは、float と clearfix で組まれていることがあります。部分的に Flexbox に置き換えると、その周辺だけ挙動が変わって崩れます。レイアウトの仕組みを変えるなら、そのセクションごとまとめて書き直すほうが結果的に早く済みます。

当社では、改修のお見積り時に既存のCSSがどの方式で組まれているかを確認し、部分修正で済む範囲と、書き直したほうがよい範囲を分けてご提示しています。

「コーディング」のコラム

この記事と同じカテゴリの記事です。

一覧に戻る

SERVICES

WordPressとECサイトの制作、
まとめてご相談いただけます

WordPress

WordPress制作・構築代行

デザインデータやコーディング済みHTMLを、オリジナルテーマとして構築します。プラグイン開発も対応。

構築基本費用 50,000円

詳しく見る
コーディング

コーディング代行

デザインデータをHTML/CSSに起こします。WordPress化まで通しでも、コーディングだけでも承ります。

1ページ 15,000円〜

詳しく見る
React

Reactコーディング代行

デザインデータをReactのコンポーネントとして実装します。既存アプリへの画面追加・UI改修だけでも承ります。

1ページ 18,000円〜

詳しく見る
Next.js

Next.js制作・コーディング代行

検索エンジンに読まれるHTMLを返せるNext.jsで構築します。静的書き出しでレンタルサーバーでも公開できます。

1ページ 18,000円〜

詳しく見る
EC / WordPress

WelcartでのECサイト構築

WordPress専用のネットショップ構築プラグイン。機能面まで踏み込んだカスタマイズができます。

デザイン制作+構築 一式 120万円〜

詳しく見る
EC / EC-CUBE

EC-CUBEでのECサイト構築

国産オープンソースのECパッケージ。決済・受注・在庫まわりを業務に合わせて作り込めます。

デザイン制作+構築 一式 120万円〜

詳しく見る
EC / ASPカート

ECサイト制作代行

Shopify・MakeShop・カラーミーなどのカートに、オリジナルデザインを組み込みます。

構築基本費用 100,000円

詳しく見る

制作のご相談も承っています

デザインデータと画面数をお知らせいただければ、お見積りと納期をご提示します。

直近2週間の受付状況制作のリソース

9/29(月)〜10/3(金)残りわずか
10/6(月)〜10/10(金)余裕があります
Chatworkで相談する