【CSS】要素を横並びにできるFlexとは?初心者にもわかる「display:flex」完全ガイド

スポンサーリンク

※ この記事にはアフィリエイトリンクが含まれます

Web制作の現場では、「要素を横に並べたい」「上下左右に中央揃えしたい」といった場面がよくあります。
こうしたレイアウトを、少ないコードで柔軟に実現できるのが Flexbox(フレックスボックス) です。

一昔前までは、floatposition を組み合わせてレイアウトを組んでいましたが、今ではFlexboxを使うことで、よりシンプルかつ直感的に配置をコントロールできるようになりました。

本記事では、CSSでレイアウトを整える際によく使われる「display: flex」について、基礎から丁寧に解説していきます。

この記事では以下のような内容を扱います。

  • Flexboxの基本的な考え方と仕組み
  • 親要素・子要素に指定する主なプロパティ
  • よくあるレイアウトパターンとその実装例
  • Flexboxを使う上での注意点やGridとの違い

「名前は聞いたことがあるけど、実はよくわかっていない」
そんな方でも安心して読んでいただけるよう、わかりやすく丁寧に進めていきますので、ぜひ最後までお付き合いください。

Flexboxの基本

まずは、Flexboxの基本的な使い方について見ていきましょう。

Flexboxを使うための第一歩は、親要素に display: flex; を指定することです。

display: flex とは?

display: flex; は、HTMLの要素に「フレックスコンテナ」という役割を持たせます。この指定をすると、その子要素(中身の要素)たちが柔軟に配置されるようになるのが特徴です。

.container {
  display: flex;
}

上記のようにCSSで .containerdisplay: flex; を指定するだけで、子要素は横並びになります。これがFlexboxの大きな特徴の一つです。

親子関係が重要

Flexboxは、親要素(フレックスコンテナ)と子要素(フレックスアイテム)の関係性が前提となっています。
設定するプロパティも、「親要素に指定するもの」と「子要素に指定するもの」で役割が異なります。

役割主な指定先目的
フレックスコンテナ(親)display: flex を指定する要素子要素の並び方や配置を制御
フレックスアイテム(子)親要素の直下の要素自身のサイズや順序を調整

このように、「誰に何を指定するか?」を理解することがFlexboxを使いこなすコツです。

ブロック要素にも、インライン要素にも使える

Flexboxは、ブロック要素(divなど)にもインライン要素(spanなど)にも使うことができます。
特にブロック要素を横並びにしたいときや、縦・横中央に配置したいときには非常に便利です。

このように、display: flex は非常にシンプルな記述でありながら、レイアウトを柔軟に制御できる優れた機能です。
次章では、Flexboxでよく使われる親要素側のプロパティについて、詳しく見ていきましょう。

Flexboxのよく使うプロパティまとめ

Flexboxでは、親要素(フレックスコンテナ)にいくつかのプロパティを指定することで、子要素の並び方や配置を細かくコントロールできます。

ここでは、実務でもよく使われる代表的なプロパティをご紹介します。

flex-direction(並ぶ方向を決める)

.container {
  flex-direction: row; /* デフォルト */
}

子要素をどの方向に並べるかを指定します。

説明
row横方向に並ぶ(左→右)
row-reverse横方向に並ぶ(右→左)
column縦方向に並ぶ(上→下)
column-reverse縦方向に並ぶ(下→上)

justify-content(主軸方向での配置)

.container {
  justify-content: center;
}

子要素を横方向(デフォルトの主軸)でどう並べるかを指定します。

説明
flex-start左寄せ(デフォルト)
flex-end右寄せ
center中央寄せ
space-between両端に配置し、間隔を均等に
space-around子要素の両側に均等な余白をつける
space-evenly子要素間の余白を均等に揃える(おすすめ)

align-items(縦方向での揃え方)

.container {
  align-items: center;
}

子要素を縦方向でどう揃えるかを指定します。

説明
stretch高さを親要素に合わせて広げる(デフォルト)
flex-start上揃え
flex-end下揃え
center縦方向の中央に揃える
baselineテキストのベースラインに揃える

flex-wrap(折り返しの有無)

.container {
  flex-wrap: wrap;
}

要素がはみ出したときに折り返すかどうかを指定します。

説明
nowrap折り返さない(デフォルト)
wrap下に折り返す
wrap-reverse上に折り返す

gap(要素間のスペース)

.container {
  gap: 16px;
}

子要素の余白を指定できます。
以前は margin で調整していましたが、今は gap がとても便利です。

以上が、Flexboxの親要素によく使われる主なプロパティです。
この組み合わせを理解することで、ほとんどのレイアウトはスムーズに組めるようになります!

Flexboxの注意点

Flexboxはとても便利なレイアウト手法ですが、実際に使ってみると「思った通りに動かない…」と感じる場面もあるかもしれません。
ここでは、Flexboxを使う際に知っておくと安心な注意点をいくつかご紹介します。

古いブラウザでは挙動が異なることがある

現在主流のモダンブラウザ(Chrome・Firefox・Edge・Safariなど)では display: flex に対応していますが、古いバージョンのInternet Explorer(IE11など)では一部のプロパティが正しく動作しないことがあります。

特に gap プロパティは、IEではサポートされていません。
そのため、古い環境をサポートする必要がある場合は、互換性に注意しましょう。

marginとの組み合わせで意図しない余白が出ることがある

Flexboxでは、justify-content: space-betweenmargin を同時に使うと、余白が広がりすぎることがあります。
このようなケースでは、gap を使うか、margin の指定を調整する必要があります。

/* 意図しない余白の原因になりやすい例 */
.item {
  margin-right: 20px;
}

flex-grow でサイズが不均一になることがある

flex-grow を使うと、空きスペースに応じて要素が伸びますが、内容量の違う要素同士だとバランスが悪く見えることがあります。
見た目を揃えたい場合は、明示的に width を指定するのがオススメです。

効率的にCSSを学びたい方へ

CSSを使ってレイアウトやデザインの表現力を高めたい方には、動画学習サイトUdemyを活用してみましょう。基礎から応用まで体系的に学べる講座が揃っており、初心者でも無理なくステップアップが可能です。

もし「何から始めたらいいか迷っちゃうな…」という方には、
Web開発入門完全攻略コース – HTML/CSS/JavaScript がおすすめです!
この講座は、プログラミングがはじめてでも大丈夫。CSSだけでなく、HTML・JavaScriptの基本をしっかり学びながら、自分でWebページを作れるようになります。楽しみながら“創れる人”を目指しましょう!

まとめ

今回は、CSSの「display: flex」を使ったレイアウト方法について、基礎から実践的な内容まで幅広く解説しました。

Flexboxは、

  • 要素を簡単に横並びにできる
  • 中央揃えなどのレイアウトが直感的にできる
  • 親要素と子要素で柔軟な調整が可能

といったメリットがあり、現代のWeb制作には欠かせない技術のひとつです。

最初は慣れない用語や動きに戸惑うかもしれませんが、プロパティの役割や使い方をしっかり理解すれば、複雑なレイアウトも簡単に組めるようになります。

Flexboxを味方につけることで、コーディングの自由度と効率が大きく向上します。
ぜひ実際の制作の中で少しずつ試しながら、使い方を自分のものにしていってくださいね。

最後まで読んでいただき、ありがとうございました!

CSS
スポンサーリンク
なんくるをフォローする

コメント

タイトルとURLをコピーしました