MENU

【CSSレイアウトの基本】flexとgridの使い方まとめ|実務でよく使うパターンも紹介

「floatはもう古い?」「左右に要素を並べたいけど、うまくいかない…」 そんな方のために、CSSレイアウトの中核となる flexgrid の使い方を、Web制作現場でよく使うパターンを交えて解説します。

目次

floatはもう古い?でも完全になくなったわけじゃない

CSSレイアウトの主流は flexgrid に移りましたが、float にもまだ使い道があります。

floatを使うケース

  • 画像の回り込み(テキストの横に画像を配置)<img src="sample.jpg" alt="説明文" style="float: left; margin-right: 1em;"> <p>画像の右側にテキストが回り込みます。ここはflexやgridでは自然な回り込みが難しく、floatの出番です。</p>

floatの注意点

  • 回り込ませた後に clear: both; を指定して回り込みを解除する必要あり
  • レイアウト全体に使うのは非推奨(flex/gridを使うべき)

flexとgridの違いをざっくり解説

特徴flexgrid
1軸(横 or 縦)2軸(縦 + 横)
並べ方コンテンツに応じて並ぶエリアを指定して配置
適しているケース横並び、縦積み、ボックスの整列複雑なレイアウト、マガジン風配置

flexの基本構文と使い方

.parent {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

よく使うプロパティ

  • justify-content: 主軸方向(横なら横)にどう配置するか
  • align-items: 交差軸(縦)方向にどう揃えるか

よくあるパターン

横並びにして中央寄せ

.flex-center {
  display: flex;
  justify-content: center;
  align-items: center;
}

左右に要素を配置したいとき

.flex-between {
  display: flex;
  justify-content: space-between;
}

カラム落ちを防ぎたいとき(折り返し)

.flex-wrap {
  display: flex;
  flex-wrap: wrap;
}

gridの基本構文と使い方

.grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

よく使うプロパティ

  • grid-template-columns: カラム数と幅を設定
  • gap: 要素間の余白
  • grid-template-areas: 名前をつけてレイアウト制御も可能

2カラムレイアウトの例

.grid-2col {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 30px;
}

上下左右にマス目を分ける例

.grid-area {
  display: grid;
  grid-template-areas:
    "header header"
    "sidebar main"
    "footer footer";
  grid-template-columns: 200px 1fr;
}

どちらを使うべき?迷ったらこの基準で!

ケースおすすめ
横に要素を並べたいだけflex
横 + 縦に複雑に並べたいgrid
レスポンシブ対応を自動で調整したいgrid(auto-fit or auto-fill
ナビゲーションやボタン配置flex

まとめ:flexとgridはCSSレイアウトの両輪!

  • flex: 横並び、中央寄せ、ナビやリスト配置に◎
  • grid: 規則的な配置、LPのコンテンツ一覧、複雑なレイアウトに◎
  • floatも画像の回り込みなど一部で現役

まずは実務でよく使うパターンから覚えて、応用できる幅を増やしていきましょう!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次
閉じる