【CSS学習】CSSのdisplayプロパティ完全ガイド|block・inline・flex・inline-block徹底解説

Webサイトをコーディングしていて、
「思った通りにレイアウトが決まらない」「横並びにできない」
といった経験はありませんか?

その原因の多くは、CSSのdisplayプロパティの理解不足にあります。

本記事では、displayの基本から応用まで、
各値の違い・使い分け・よくあるトラブル例まで、図解とコード例付きで徹底解説します。

displayプロパティとは?

displayは、要素のボックスの種類や並び方を指定するプロパティです。

  • ブロック要素(block)やインライン要素(inline)の挙動
  • 横並びや縦並びの制御
  • FlexboxやGridなどのレイアウト制御

すべてdisplayで決まります。

基本の種類

説明代表的なHTML要素
blockブロックレベル要素。改行が入り、幅は親要素いっぱい<div>, <p>, <h1>
inlineインライン要素。改行されず、横並び<span>, <a>
inline-blockインラインの性質を持ちながら、幅・高さを指定可能<img>など
none非表示すべての要素
flexFlexboxコンテナに変える<div>
gridGridコンテナに変える<div>

blockとinlineの違い

block要素の特徴

  • 画面幅いっぱいに表示される
  • 上下に余白(改行)が入る
  • 幅・高さを自由に指定できる

See the Pen Untitled by suguru (@suguru22) on CodePen.

inline要素の特徴

  • 横方向に並ぶ
  • 幅・高さは無視される
  • 改行されず、文字や他のinline要素と並ぶ

See the Pen Untitled by suguru (@suguru22) on CodePen.

inline-blockの特徴

  • 横並び可能
  • 幅・高さを指定できる
  • marginやpaddingも適用される

See the Pen Untitled by suguru (@suguru22) on CodePen.

noneで要素を非表示にする

  • 完全にDOMから表示を消す
  • レイアウトにも影響を与えない

See the Pen Untitled by suguru (@suguru22) on CodePen.

注意:visibility: hidden とは違い、display: none はレイアウトも消えます。

Flexboxで横並び・縦並びを自由に制御

Flexコンテナの作り方

See the Pen Untitled by suguru (@suguru22) on CodePen.

Flexboxでできること

  • justify-content:左右配置(start, center, space-betweenなど)
  • align-items:上下配置(start, center, stretchなど)
  • 横並びだけでなく縦並びも可能 (flex-direction)

display: gridでレイアウトを制御する

See the Pen Untitled by suguru (@suguru22) on CodePen.

  • 2列×2行のグリッドを簡単に作れる
  • Flexよりもレイアウトの制御が精密

よくある「displayが効かない」原因と対策

原因解決方法
要素がinlineでwidthやheightが効かないdisplay: inline-block または block に変更
FlexやGridを指定しても思った通りに並ばない子要素にflex-growやalign-itemsなどを指定
display:noneが効かないと思ったvisibilityやopacityと混同していないか確認
CSSの競合優先順位・セレクタの詳細度を確認
インラインスタイルで上書きされている外部CSSを確認

まとめ表:displayプロパティ早見表

特徴使いどころ
block改行される、幅いっぱいdiv, p, h1などのブロック要素
inline横並び、幅・高さ無効span, aなど文字やリンク
inline-block横並び+幅高さ指定可画像やボタンなど
none非表示、レイアウトにも影響なしモーダル非表示など
flexFlexコンテナ、横並び/縦並びナビゲーション、カードレイアウト
gridGridコンテナ、行列レイアウト複雑なグリッドレイアウト
タイトルとURLをコピーしました