CSS Grid vs Flexbox 完全比較|1次元・2次元の使い分けとレスポンシブレイアウト

CSS レイアウト Grid Flexbox HTML
結論:30秒で Grid と Flexbox を使い分ける
  • Flexbox (1D): ナビゲーションバー、ボタンとアイコン、アバター横並び
  • CSS Grid (2D): カード一覧、ダッシュボード、2次元グリッド
  • オンラインツール: 下の CSS Grid ジェネレーターでコード生成

1. オンライン CSS Grid レイアウト生成ツール

カラム数や gap を調整し、自動レスポンシブに対応した repeat(auto-fit, minmax(...)) の CSS コードをリアルタイム生成できます。

🏁 この場でCSS Gridを生成する

  

2. 使い分けの判断基準

特徴 推奨される場面
Flexbox (1D) ナビゲーションバー, ボタンの配置, 要素を横(または縦)に並べる
CSS Grid (2D) ページ全体のレイアウト, 複雑なカードグリッド, 雑誌風のデザイン

3. CSS Grid が圧倒的に強いカードグリッドの書き方

.grid-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 1.5rem;
}

4. 注意点(ハマりどころ)

  1. minmax() の最小幅オーバーフロー
    • minmax(300px, 1fr) を指定した場合、画面幅が 300px 未満のモバイル実機で横スクロールが発生します。minmax(min(100%, 300px), 1fr) と記述することで防げます。