HTMLのブロック要素とインライン要素の違い

HTMLのブロック要素とインライン要素の違いを初心者向けに解説。ブロックは横幅いっぱい、インラインは内容の幅だけ。displayでの切り替え方もコード例で紹介。中高生向け。無料。

2026年4月16日

HTML ブロック要素とインライン要素とは?

HTMLの要素は大きく2種類に分かれます。ブロック要素インライン要素です。この違いを理解することで、レイアウトの仕組みがわかりやすくなり、CSSでデザインするときに「なぜ思い通りにならないのか」がわかるようになります。この記事で違いをしっかり理解しましょう。一度覚えれば、CSSのレイアウトで悩むことが格段に減ります。

たとえば「ボタンを横並びにしたいのにできない」「spanにwidthを指定しても効かない」といった問題は、ブロック要素とインライン要素の違いを理解していれば簡単に解決できます。

  • 📦 ブロック要素:前後に改行が入り、横幅いっぱいに広がる
  • ✏️ インライン要素:前後に改行が入らず、内容の幅だけ広がる

ブロック要素の特徴と代表タグ

  • 前後に改行が入る(縦に積み重なる)
  • 横幅が親要素いっぱいに広がる
  • width・height・margin・paddingが自由に設定できる

代表的なブロック要素:divph1〜h6sectionarticleheaderfooterulollitable

ブロック要素は「箱」のようなイメージです。箱は縦に積み重なり、横幅いっぱいに広がります。CSSで width を指定すれば幅を変えられますが、指定しなければ親要素の幅いっぱいに広がります。

<p>これはブロック要素です。</p>
<p>前後に改行が入り、縦に並びます。</p>

💡 metaタグの書き方で基礎を確認できます。

インライン要素の特徴と代表タグ

  • 前後に改行が入らない(横に並ぶ)
  • 内容の幅だけ広がる
  • width・heightは設定できない(上下のmarginも効かない)

代表的なインライン要素:spanastrongemcodeimginputbutton

インライン要素は「文字」のようなイメージです。文章の中に自然に溶け込み、前後の要素と横に並びます。リンク(aタグ)や強調(strongタグ)が代表例です。

<p>
  これは<strong>インライン要素</strong>の例です。
  <a href="/">リンク</a>も横に並びます。
</p>

🔗 あわせてエラー辞典もチェックしてみましょう。

CSSでdisplayを切り替える

display プロパティを使うと、ブロック要素とインライン要素を切り替えられます。

/* インライン要素をブロックに変える */
a {
  display: block;
  padding: 12px 24px;
}

/* ブロック要素をインラインに変える */
li {
  display: inline;
}

/* 両方の特性を持つ(最もよく使う) */
.btn {
  display: inline-block; /* 横に並びつつ、width・heightも設定できる */
  padding: 10px 24px;
}

inline-block は「横に並ぶ(インライン)」かつ「width・heightが設定できる(ブロック)」という便利な値です。ボタンやナビゲーションリンクを横並びにしたいときによく使います。現在は display: flex を使う方が主流ですが、inline-block も知っておくと便利です。

📖 詳しくはHTMLとCSSの違いで解説しています。

よくある間違い

  • インライン要素の中にブロック要素を入れる<span> の中に <div> を入れるのはHTMLの仕様上NGです。ブロック要素の中にインライン要素を入れるのが正しい順番です。ただし <a> タグは例外で、HTML5ではブロック要素を囲むことが許可されています。
  • インライン要素にwidth/heightを指定する<span><a> にwidthを指定しても効きません。display: inline-blockdisplay: block に変更する必要があります。開発者ツールで確認すると、指定が無視されていることがわかります。
  • 改行のためにbrタグを連続で使う:余白はCSSの marginpadding で調整しましょう。<br><br><br> のような書き方は避けてください。
  • divの乱用:すべてを <div> で囲むのではなく、適切なセマンティックタグ(<nav><main><section>など)を使いましょう。

🔗 displayプロパティでblock/inline/flexの切り替えを詳しく学べます。

💡 marginとpaddingの違いで余白の使い方を確認しましょう。

HTML5のセマンティック要素

HTML5では、div の代わりに意味を持つブロック要素が追加されました。

  • <header>:ページやセクションのヘッダー
  • <nav>:ナビゲーション
  • <main>:メインコンテンツ
  • <article>:独立した記事
  • <section>:テーマごとのまとまり
  • <footer>:フッター

これらはすべてブロック要素として振る舞いますが、「この部分は何なのか」を検索エンジンやスクリーンリーダーに伝える役割があります。

📖 セマンティックHTMLで詳しく学べます。

実践例:ナビゲーションメニュー

ブロック要素とインライン要素の違いを活かした実践例を見てみましょう。ナビゲーションメニューでは、リスト項目(ブロック要素)を横並びにするために display: inline-blockdisplay: flex を使います。

<nav>
  <ul style="display: flex; list-style: none; gap: 16px;">
    <li><a href="/">ホーム</a></li>
    <li><a href="/about/">自己紹介</a></li>
    <li><a href="/blog/html-css-project-ideas/">作品集</a></li>
  </ul>
</nav>

ul(ブロック要素)に display: flex を指定すると、子要素の li が横並びになります。Flexbox入門で詳しく学べます。

まとめ

  • ブロック要素:前後に改行・横幅いっぱい(div・p・h1など)
  • インライン要素:改行なし・内容の幅だけ(span・a・strongなど)
  • display: block でブロック、display: inline でインラインに変えられる
  • display: inline-block で横並び+サイズ指定が可能

ブロック要素とインライン要素の違いを理解すると、レイアウトの仕組みがわかりやすくなります。「なぜ横並びにならないのか」「なぜwidthが効かないのか」という疑問が解決します。レッスンでさらに詳しく学んでみましょう。

現代のレイアウト:FlexboxとGrid

現在のWeb開発では、display: flexdisplay: grid を使ったレイアウトが主流です。これらを使うと、ブロック要素を簡単に横並びにしたり、複雑なレイアウトを作ったりできます。

  • Flexbox:1次元(横方向 or 縦方向)のレイアウトに最適。ナビゲーションやカードの横並びに使います。
  • Grid:2次元(行と列)のレイアウトに最適。ページ全体のレイアウトや、ギャラリーに使います。

ブロック要素・インライン要素の基本を理解した上でFlexboxやGridを学ぶと、なぜそのように動作するのかが深く理解できます。基礎があってこそ応用が活きるのです。まずはこの記事でブロック要素とインライン要素の違いをしっかり理解してから、FlexboxやGridに進みましょう。「なぜdisplay:flexで横並びになるのか」「なぜinline-blockだと隙間ができるのか」——これらの疑問は、ブロック要素とインライン要素の基本を理解していれば自然と解決します。CSSレイアウトの土台となる知識なので、しっかり身につけておきましょう。この記事の内容を理解できたら、次はFlexboxに挑戦してみてください。レイアウトの自由度が格段に上がります。ブロック要素とインライン要素の違いは、CSS学習の最初の壁ですが、一度理解すれば二度と迷いません。この知識があれば、どんなレイアウトも怖くありません。HTMLとCSSの基礎をしっかり固めて、美しいWebページを作りましょう。次のステップとしてFlexboxを学ぶと、レイアウトの幅が一気に広がります。基礎を固めてから応用に進みましょう。急がば回れです。基礎は裏切りません。しっかり理解しましょう。

📖 Flexbox入門Grid入門で詳しく学べます。

✨ block と inline の違いをリアルタイムで体験しよう!

HTMLタグを選んでdisplayの変化を視覚的に確認できる無料ツールです。

HTMLタグビジュアライザー →

🚀 HTMLをレッスンで学ぼう!

このサイトのHTMLコースでは、要素の種類を含む実践的なページ作りをブラウザだけで学べます。無料・登録不要です。

HTMLコースを見る →
目次

コースで実際に手を動かして学ぼう

レッスンではコードを書きながら基礎が身につきます

HTMLコースを始める →

この記事に出てくる用語

📣 この記事が役に立ったら

Xでシェア

💬 引用する場合はこちらをご利用ください:

HTMLのブロック要素とインライン要素の違いを初心者向けに解説。ブロックは横幅いっぱい、インラインは内容の幅だけ。displayでの切り替え方もコード例で紹介。中高生向け。無料。

出典: https://start-web-programming.com/blog/html-block-inline/