CSSのdisplayとは?block・inline・noneの使い方を解説

PR CSS

CSSのdisplayとは?block・inline・noneの使い方を解説

💡 この記事でわかること

  • displayプロパティとは何か
  • block・inline・inline-blockの違い
  • noneとvisibility:hiddenの違い
  • flex・gridとの関係
  • 初心者がつまずきやすいポイント

1. displayとは?

displayプロパティとは、
👉 要素を画面上でどのように表示するか、その基本的なふるまいを決めるCSSプロパティです。

HTMLの各タグには、実は最初から「block」「inline」のどちらかの初期値が設定されています。divやpタグはblock、spanやaタグはinlineが初期値です。displayプロパティを使うと、このふるまいを自分で書き換えられます。


2. block(ブロック要素)

block値を指定した要素は、以下のような特徴を持ちます。

  • 幅いっぱいに広がり、前後で自動的に改行される
  • width・height・margin・paddingを上下左右すべて指定できる
.box {
  display: block;
  width: 300px;
  height: 100px;
}

💡 div・p・h1〜h6・ul・liなど、多くのタグは何も指定しなくても初期値がblockです


3. inline(インライン要素)

inline値を指定した要素は、以下のような特徴を持ちます。

  • コンテンツの幅だけ場所を取り、前後で改行されず横に並ぶ
  • width・heightを指定しても効かない
  • margin・paddingは左右は効くが、上下は見た目上の高さに反映されない
.text {
  display: inline;
}

👉 span・a・strong・emなど、文章の一部を装飾するタグの多くは初期値がinlineです。「文章の途中に自然に混ざる」ことを目的としたタグ、とイメージすると分かりやすいです


4. inline-block(いいとこ取り)

inline-block値は、blockとinlineの特徴を組み合わせたような値です。

  • inlineのように、前後で改行されず横に並ぶ
  • blockのように、width・height・上下のmargin・paddingが効く
.button {
  display: inline-block;
  width: 120px;
  padding: 8px 16px;
}

💡 「横に並べたいけど、サイズも指定したい」というときの定番の指定方法です。ナビゲーションメニューの項目や、ボタン風のリンクなどでよく使われます

👉 CSSのwidth・heightについての記事はこちら


5. none(非表示)とflex・grid

display: noneを指定すると、要素はページ上から完全に取り除かれたように扱われます。

.hidden {
  display: none;
}

⚠️ 似た働きをするvisibility: hiddenとの違いに注意しましょう。display: noneは要素が占めていたスペースごと消えるのに対し、visibility: hiddenは見た目だけ透明になり、スペースはそのまま残ります

また、複数の要素を横並びにしたり、格子状に配置したりしたい場合は、display: flexやdisplay: gridという値も使います。これらは奥が深いテーマなので、別記事で詳しく解説しています。

👉 CSS Flexboxについての記事はこちら

👉 CSS Gridについての記事はこちら


6. 初心者がつまずきやすいポイント

inline要素にwidth・heightを指定しても反映されない

spanタグなどにwidth・heightを指定しても、inlineのままでは無視されます。サイズを効かせたい場合は、display: block、またはdisplay: inline-blockに変更する必要があります。

display: flexにするとpositionが不要になるわけではない

displayは「要素の並び方」を決めるプロパティで、positionは「要素をどこに固定・重ねるか」を決めるプロパティです。役割が異なるため、目的によっては両方を組み合わせて使うことになります。

👉 CSSのpositionについての記事はこちら


まとめ

displayプロパティは、要素をどのように表示するかを決める、CSSの中でも特に基本となるプロパティです。

  • block: 幅いっぱいに広がり改行される
  • inline: 横に並ぶがwidth・heightは効かない
  • inline-block: 横に並びつつwidth・heightも効く
  • none: スペースごと非表示になる(visibility: hiddenとは異なる)

ブラウザの開発者ツールで、身近な要素のdisplayの初期値を確認してみると理解が深まります。

-CSS
-, , , ,