質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.30%
HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

意見交換

4回答

395閲覧

CSS GridとFlexboxはどう使い分けるのが良いのでしょうか?

tpoj

総合スコア0

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2025/06/05 01:46

テーマ、知りたいこと

CSS GridとFlexboxはどう使い分けるのが良いのでしょうか?

背景、状況

現在、独学でweb制作の勉強をしています。
Webページのレイアウトを組む際にCSS GridとFlexboxのどちらをどう使い分けるべきかで迷っています。

調べてみると
Flexboxが「1次元(横 or 縦)」の配置なのに対し、グリッドは2次元(縦・横両方) の配置を管理
という記載をよく目にするのですが、

実際に開発してみると「Gridでもできそう」「Flexboxでも書けそう」と思うことが多く、
最終的にどちらを選ぶべきか判断基準が曖昧です。

皆さんがどういった基準や方針で使い分けているか、
可能であれば実例を交えて教えていただけますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

回答4

#1

utm.

総合スコア860

投稿2025/06/05 02:47

1次元、2次元というのはあるのですが、実際にはflexを組みあわえれば二次元に配置はできるので混乱するのもおかしくないと思います。実際にはgridは各セルのサイズを共有するか指定するためのものだと思っています。

girdもflexもコンテナ領域を提供するものですが、
実際にflexとgridの違いとしてはflexでは余白部分や要素ごとに柔軟性を持たせることができます。それぞれの幅が固定か、要素ごとなのか、余白を埋めるのかなど。つまり要素がflexということです。

gridは各セルが固定で、どこかの要素か指定値に従います。柔軟性というのはないかもしれませんが、固定のグリッドを表現することができます。つまりコンテナとしてgridを提供するということです。

自分はデザイナーではないですが、基本的にflexで良いと思います。
ヘッダーとサイドバーが同じレベルに存在するときはgridも使えますが、別にビューポートに対して相対的に配置しかしないので、flexでも同じことができますし。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#2

Lhankor_Mhy

総合スコア37460

投稿2025/06/05 04:53

編集2025/06/05 04:54

 縦横びしっと揃えたいときはグリッドレイアウト、揃えたくない時はフレックスボックスぐらいの感じでいいと思います。

 個人的には、基本的にだいたいグリッドレイアウトでいいと思っています。レイアウトのしやすさで勝ります、特にレスポンシブ対応で。フレックスボックスは成り行きで折り返したい時、横一列に敷き詰めたい時などに便利です。

↓この記事はわかりやすいと思います。
特徴で使い分けたいCSSレイアウト手法 - CSS Grid, Flexbox, floatの使い分け - ICS MEDIA

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#3

yambejp

総合スコア117780

投稿2025/06/05 05:27

gridはマトリクスか、複数のパーツを自由な位置に配置したいときですかね
flexは基本的に左から右に、上から下に流れるようなデザインをするときにやりやすいです(ある意味floatの延長のような・・・)

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#4

tamoto

総合スコア4331

投稿2025/06/06 02:17

こんにちは。

「Gridでもできそう」「Flexboxでも書けそう」

この感覚は正しくて、あらゆるレイアウトはおそらくどちらを使っても完璧に同じ形を再現できます。
この2つの違いは「向き不向き」だけであって、すでに質問文にある通り、Flexbox は一列のデータを扱う場合に、Grid は縦横の格子状のデータを扱う場合に使うのが良いとされています。
適切に使い分けることを考えるのであれば、列状のデータには基本的に Flexbox を使い、テーブル的なデータや複数行にわたるデータを縦横合わせて並べたいときは Grid を使えば良いと思います。
また、画面全体を格子に見立てて各要素を配置するようなレイアウトをしたいときにも Grid は使えますね。
もちろん Flexbox だけで全てをレイアウトしても Grid だけで全てをレイアウトしても、自分が良ければ何でも良いのですが、適切に使い分けられるのであればその方が内部的には「キレイ」な実装になると思います。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

この意見交換はまだ受付中です。

会員登録して回答してみよう

アカウントをお持ちの方は

関連した質問