カテゴリ: CSS 更新日: 2026/01/29

CSSでdisplayの違いを図解で理解!block・inline・inline-blockの使い方

display: block・inline・inline-blockの違いを図解で理解しよう
display: block・inline・inline-blockの違いを図解で理解しよう

先生と生徒の会話形式で理解しよう

生徒

「CSSで要素の表示方法が違うって聞きました。blockとかinlineとかinline-blockって何ですか?」

先生

「それぞれの要素の表示方法を決めるプロパティがdisplayです。blockはブロック要素、inlineはインライン要素、inline-blockはその中間的な要素を作ります。」

生徒

「具体的にどう違うんですか?」

先生

「わかりやすく図で説明しますね。blockは横幅いっぱいを使い、新しい行に表示されます。inlineは文字のように横に並びます。inline-blockは横に並びますが、高さや幅を指定できます。」

1. display: blockとは

1. display: blockとは
1. display: blockとは

blockはボックスが常に新しい行から始まる表示方法です。幅はデフォルトで親要素いっぱいになります。見出しや段落などがblockです。


<style>
    .block-box {
        display: block;
        width: 200px;
        background-color: lightblue;
        margin-bottom: 10px;
        padding: 5px;
    }
</style>
<div class="block-box">block要素1</div>
<div class="block-box">block要素2</div>
ブラウザ表示

2. display: inlineとは

2. display: inlineとは
2. display: inlineとは

inlineは文字やリンクのように横に並ぶ表示方法です。高さや幅は指定できず、文字と同じラインに表示されます。


<style>
    .inline-box {
        display: inline;
        background-color: lightgreen;
        margin-right: 5px;
        padding: 5px;
    }
</style>
<span class="inline-box">inline1</span>
<span class="inline-box">inline2</span>
<span class="inline-box">inline3</span>
ブラウザ表示

3. display: inline-blockとは

3. display: inline-blockとは
3. display: inline-blockとは

inline-blockは横に並びながらも、widthやheightが指定できる表示方法です。デザインを調整したい場合に便利です。


<style>
    .inline-block-box {
        display: inline-block;
        width: 100px;
        height: 50px;
        background-color: lightcoral;
        margin-right: 5px;
        text-align: center;
        vertical-align: middle;
        line-height: 50px;
    }
</style>
<div class="inline-block-box">box1</div>
<div class="inline-block-box">box2</div>
<div class="inline-block-box">box3</div>
ブラウザ表示

4. 使い分けのポイント

4. 使い分けのポイント
4. 使い分けのポイント

文章や見出しのように新しい行で表示したい場合はblock。文字やリンクのように横に並べたい場合はinline。ボックスを横に並べたいけど大きさも調整したい場合はinline-blockを使います。これを理解すると、CSSのレイアウトがぐっと簡単になります。

5. 初心者向けの活用例

5. 初心者向けの活用例
5. 初心者向けの活用例
  • メニューの横並びボタンはinline-block
  • 段落や見出しはblock
  • 文字装飾やリンクはinline

これらを組み合わせることで、自然なウェブページデザインが可能になります。特にinline-blockはレスポンシブデザインでも便利です。

まとめ

まとめ
まとめ

ウェブサイトのデザインを構築する上で、CSSのdisplayプロパティを正しく理解することは、レイアウト崩れを防ぎ、意図通りの外観を実現するための最も重要なステップの一つです。これまで解説してきた通り、HTML要素にはそれぞれデフォルトの表示形式が存在しますが、CSSのdisplayプロパティを上書きすることで、その性質を自由に変更することができます。

あらためて、主要な3つの値について振り返ってみましょう。 まずは「display: block;」です。これは、要素が画面の横幅いっぱいに広がり、前後に改行が入る性質を持っています。divタグ、h1〜h6タグ、pタグなどがこれに該当します。構造を作るための「箱」として機能し、width(幅)やheight(高さ)を自由に指定できるほか、上下左右のmargin(外側の余白)やpadding(内側の余白)が正確に反映されるのが特徴です。

次に「display: inline;」です。これは文章の中の一部として扱われる要素で、spanタグ、aタグ、strongタグなどがデフォルトでこの設定になっています。横に並ぶという性質がありますが、widthやheightを指定することができず、上下のmarginも反映されません。主にテキストの装飾や、リンクの設定など、文章の流れを止めずに特定の箇所を指定したい場合に活用されます。

そして、最も柔軟性が高いのが「display: inline-block;」です。これは「横に並ぶ」というinlineの長所と、「サイズ指定ができる」というblockの長所を兼ね備えたハイブリッドな設定です。ナビゲーションメニューのボタンを横に並べたり、画像を説明文の横に配置したりする際に非常に重宝します。

各プロパティの比較表

それぞれの違いを整理するために、以下の表で特性を比較してみましょう。これを頭に入れておくだけで、コーディングのスピードが格段に上がります。

特性 block inline inline-block
改行 入る(縦に並ぶ) 入らない(横に並ぶ) 入らない(横に並ぶ)
幅・高さの指定 可能 不可 可能
余白(上下) 適用される 適用されない 適用される
主な用途 見出し、段落、外枠 文章内の装飾、リンク ボタン、カード型の横並び

実践的なコード例:カードレイアウトの作成

実際の現場でよく使われる、inline-blockを利用した画像付きカードの横並びレイアウトを作成してみましょう。block要素であるdivをinline-blockに変えることで、簡単に横並びのリストを作成できます。


<style>
.card-container {
    padding: 20px;
    background-color: #f8f9fa;
}

.item-card {
    display: inline-block;
    width: 160px;
    margin: 10px;
    padding: 10px;
    background-color: #ffffff;
    border: 1px solid #ddd;
    border-radius: 8px;
    text-align: center;
    vertical-align: top;
    box-shadow: 2px 2px 5px rgba(0,0,0,0.1);
}

.item-card img {
    width: 120px;
    height: 120px;
    border-radius: 4px;
    margin-bottom: 8px;
}

.item-card p {
    font-size: 14px;
    color: #333;
    margin: 0;
}
</style>

<div class="card-container">
    <div class="item-card">
        <img src="/img/sample120-120.jpg" alt="サンプル画像1">
        <p>商品アイテムA</p>
    </div>
    <div class="item-card">
        <img src="/img/sample120-120.jpg" alt="サンプル画像2">
        <p>商品アイテムB</p>
    </div>
    <div class="item-card">
        <img src="/img/sample120-120.jpg" alt="サンプル画像3">
        <p>商品アイテムC</p>
    </div>
</div>
ブラウザ表示

このように、displayを使い分けることで、複雑なレイアウトもシンプルに記述できるようになります。特に最近ではFlexbox(display: flex)を使用することも多いですが、その基礎となるのはこれらの概念です。要素がどの程度の空間を占有し、どのように配置されるのかを常に意識して、読みやすくメンテナンス性の高いコードを目指しましょう。

先生と生徒の振り返り会話

生徒

先生、ありがとうございました!displayの意味がようやく腑に落ちました。今まで「なんでこのボタンは幅が効かないんだろう?」って悩んでいたのは、その要素がinlineだったからなんですね。

先生

その通りです!よくある落とし穴ですよね。aタグやspanタグにサイズを指定したいときは、まずdisplayをinline-blockかblockに変更する必要があるんです。そこに気づけたのは大きな進歩ですよ。

生徒

はい。あと、inline-blockの便利さにも驚きました。横に並べたいけど、ちゃんと余白やサイズも管理したいっていう時にぴったりですね。実際のサイトのメニューとか、商品の一覧画面とかでよく見かける気がします。

先生

そうですね。ちなみに、inline-blockを使うと要素の間にわずかな「隙間」が空くことがあるんですが、それはHTML上の改行やスペースが反映されてしまうからなんです。そういった細かい挙動も、これから作っていく中で学んでいきましょう。

生徒

隙間ですか……。奥が深いですね。でも、基本の3つの違いがわかったので、これからは迷わずにスタイルを当てられそうです。次はもっと複雑なレイアウトにも挑戦してみたいです!

先生

その意気です!CSSは実際に書いてみて、ブラウザでどう変わるかを確認するのが一番の近道です。今回学んだblock、inline、inline-blockの特性を忘れずに、色々なデザインを試してみてくださいね。何か詰まったら、いつでも聞いてください。

生徒

ありがとうございます!まずは自分で色々なタグのdisplayを書き換えて、動きをじっくり観察してみることにします!

カテゴリの一覧へ
新着記事
New1
Bootstrap
スティッキーフッターの作り方を完全解説!Bootstrapで高さと余白を調整する方法
New2
CSS
CSSのダブルボーダーや点線・破線を完全ガイド!初心者でもわかるdotted・dashed・doubleの使い方
New3
CSS
レスポンシブデザインの要!ブレイクポイントの決め方とCSSの書き方ガイド
New4
HTML
HTMLのdl・dt・ddとは?初心者でもわかる定義リストの基本と使い方
人気記事
No.1
Java&Spring記事人気No1
CSS
CSSで要素のサイズを自動調整!autoとfit-contentの使い方
No.2
Java&Spring記事人気No2
Bootstrap
Bootstrap 5のユーティリティクラスを完全解説!初心者向けによく使うクラス一覧と使い方
No.3
Java&Spring記事人気No3
CSS
ヘッダーとフッターのレスポンシブ配置を完全ガイド!スマホ対応のコツ
No.4
Java&Spring記事人気No4
CSS
CSSのバージョンと進化の歴史を初心者向けにやさしく解説!
No.5
Java&Spring記事人気No5
Bootstrap
Bootstrap Iconsのライセンスと商用利用の注意点【著作権と表記を初心者向けに解説】
No.6
Java&Spring記事人気No6
Bootstrap
Bootstrapの幅と高さを完全理解!初心者でもわかるサイズ・幅高さユーティリティ入門
No.7
Java&Spring記事人気No7
Bootstrap
Bootstrap 5 のテーブル入門:罫線・ストライプ・横スクロールの設定方法
No.8
Java&Spring記事人気No8
CSS
CSSの透明度を完全解説!初心者にもわかるopacityとrgbaの使い方