ZeroPlus Gateについて

\ シェア /

FacBook
Twitter
LINE
はてブ
PPocket
ZeroPlus Media > Web制作 > HTML/CSS > 【CSS】inline・block・inline-blockの違いとは?使い分け方を初心者向けに解説

【CSS】inline・block・inline-blockの違いとは?使い分け方を初心者向けに解説

HTML/CSS

2022/02/12

2024/11/13

inlineとblockの違い記事のサムネイル

HTMLの要素の表示形式にはいくつかの種類があります。中でもよく使われるのは以下の3つです。

  • ブロックレベル要素(block)
  • インライン要素(inline)
  • インラインブロック要素(inline-block)

それぞれの表示形式の特徴を理解しておかないとうまくレイアウトが組めなかったり、デザインが崩れてしまったりします。そこで本記事ではinline, block, inline-blockの特徴と使い分け方を事例を交えて詳しく解説しています。

最後までお読みいただけると、Webサイトをコーディングする技術が確実にレベルアップするので、参考にしてみてくださいね。

この記事で身につく内容
  • displayプロパティの使い方
  • inline・block・inline-blockの特徴
  • inline・block・inline-blockの使い分け方

無料で30日間、Web制作が学べる『ZeroPlus Gate』
プログラミングに関する質問をエンジニアへ「し放題」のサービス!

  • 正しいコードの書き方が身につく
  • 50本以上の動画教材でサイト制作を学べる
  • 30日間に4回の学習サポート面談がある
  • わからないことはSlackでエンジニアに質問し放題
公式サイトを見る

HTMLの要素

HTMLの要素とはタグの初めから終わりまでをひとまとまりにしたものです。たとえば以下のようなコードがあるとします。

<p>テキスト</p>

<p>タグで囲まれた「テキスト」という文字列が一つの要素です。

displayで要素の表示形式を変更する

要素の表示形式を変更したい場合は、CSSのdisplayプロパティを使用します。値がblockならブロックレベル要素inlineならインライン要素inline-blockならインラインブロック要素へと変更できます。

以下が記述例です。

div {
   display: block;
}

通常<div>タグは初期値(何も指定していない状態)ではブロックレベル要素ですが、display: inline-block;と指定すればインラインブロック要素に変更できます。

 

displayの初期値

HTMLの要素には、displayの初期値が設定されています。<div>タグや<p>タグはブロックレベル要素、<a>タグや<span>タグはインライン要素です。以下の表では、主要なHTMLタグがそれぞれ、どのdisplayに該当するかを示しています。

HTMLタグのdisplayの初期値の表です

なおdisplayの初期値がinline-blockであるHTMLタグは存在しません。

60種類の動画で、HTML/CSSを学べる無料のスクール

ZeroPlus Gate詳しいサービス内容を見る

費用は一切かからないサービスです

 

block、inline、inline-blockの特徴

block、inline、inline-blockはそれぞれ異なる特徴を持つため違いを解説します。

block(ブロックレベル要素)の特徴

ブロックレベル要素とはコンテンツをまとめるための要素であり、以下のような特徴を持ちます。

  • 要素が縦に並ぶ
  • 幅と高さを指定できる
  • marginとpaddingを使って余白を自由に調整できる

 

      inline(インライン要素)の特徴

      インライン要素はブロックレベル要素の内容として用いられる要素で、以下のような特徴を持ちます。

      • 要素が横に並ぶ
      • 幅と高さは指定できない
      • 上下の余白をmarginで調整できない
      • 上下にpaddingは指定できるが、デザイン崩れの原因になるため使用は避ける

       

            inline-block(インラインブロック要素)の特徴

            インラインブロック要素は、ブロックレベル要素とインライン要素の中間の要素です。「要素は横並びにしたいけど、横幅や高さ、余白を調整したい」といった場面で使用します。インラインブロック要素の特徴は以下のとおりです。

            • 横に要素が並ぶ
            • 幅と高さを指定できる
            • marginとpaddingを使って余白を指定できる

             

            block,inline,inline-blockの特徴まとめ

            ここまでに解説してきた、3つの要素の特徴を以下の表にまとめます。

            block

            inline

            inline-block

            並び方

            並び

            並び

            並び

            幅・高さの指定

            ×

            paddingの指定


            ※左右へは指定できるが、
            上下へ指定すると
            デザイン崩れの原因になる

            marginの指定

            ※左右へは指定できるが、
            上下へは指定できない

             

            block,inline,inline-blockの違い

            本章ではblock,inline,inline-blockの違いを、実際のコードと図を使ってなるべく分かりやすく解説します。

             

            並び方、改行のされ方の違い

            並び方や改行のされ方の違いについて解説します。

            次に実際のコードを使って解説します。

            See the Pen Untitled by ZeroPlus (@zeroplus-programming) on CodePen.

            ブロックレベル要素は縦並び、インライン要素とインラインブロック要素は横並びが基本です。しかし上の例ではインラインブロック要素は、縦に並んでいるように見えるのではないでしょうか?

            これは画面の端に到達したときの、インライン要素とインラインブロック要素の改行のされ方の違いによるものです。インライン要素はテキストが画面の端に達すると、要素の途中でも改行されます。一方、インラインブロック要素は全体がひとまとまりとして扱われるため、要素の途中ではなく、要素全体が次の行に送られます。

            そのため親要素の幅が不足すると、インラインブロック要素が改行されて縦に並んでいるように見えるのです。試しにCodePenの「0.5×」のボタンをクリックしてみましょう。画面幅が広がるとインラインブロック要素が縦並びになるのを確認できます。

            60種類の動画で、HTML/CSSを学べる無料のスクール

            ZeroPlus Gate詳しいサービス内容を見る

            費用は一切かからないサービスです

             

            横幅・高さを指定するときの違い

            横幅と高さを指定したときの違いについて解説します。

            次に実際のコードで事例を紹介します。3つの要素にwidthとheightを100pxずつ指定してみましょう。

            See the Pen display 幅と高さ by ZeroPlus (@zeroplus-programming) on CodePen.

            ブロックレベル要素とインラインブロック要素には、指定通りにwidthheightが反映されますが、インライン要素にはwidthheightの指定が反映されていません。インライン要素の要素の幅と高さは、その中に含まれるテキストやリンクのサイズに応じて自動的に決まるのです。

             

            余白を指定するときの違い

            余白を指定するときの違いについて解説します。

            次に実際のコードで解説します。3つの要素に上下左右のmargin(要素の外側の余白)とpadding(要素の内側の余白)を20pxずつ指定してみましょう。

            See the Pen display 余白 by ZeroPlus (@zeroplus-programming) on CodePen.

            ブロックレベル要素とインラインブロック要素には、上下左右にpaddingもmarginも付いています。

            インライン要素の左右にはpaddingとmarginのいずれも付いていますが、上下のmarginは付いていません。paddingは上下に付いていますが、それが原因となり改行された要素が前の行の要素にかぶさって、デザインが崩れてしまっています。このデザイン崩れを防ぐため、インライン要素の上下には、paddingを付けない方が無難なのです。

            参考記事【CSS】marginとpaddingの違いを初心者向けに丁寧に解説 | ZeroPlus Media

             

            text-alignを指定したときの配置の違い

            text-alignを指定したときの配置のされ方も、表示形式によって違いがあります。text-alignとはテキストや画像の水平方向のそろえかたを指定できるCSSプロパティです。 ここでは中央揃えの指定、text-align: center;を指定してみます。

            See the Pen display 要素の配置 by ZeroPlus (@zeroplus-programming) on CodePen.

            ※こちらも表示結果を「0.5×」にすると分かりやすくなります。

            ブロックレベル要素には、内側にあるテキストのみに中央揃えが反映されます。要素そのものが中央に揃うわけではありません。

            一方、インライン要素やインラインブロック要素は、要素ごと中央に揃って配置されています。ポイントは中央揃えしたい要素の親要素にtext-align: center;を指定する点です。子要素にtext-alignを指定しても中央揃えは反映されません。

            なお、ブロックレベル要素を中央に配置させるためにはflexboxなどの技術margin: 0 auto;など、別の指定方法を使わなければなりません。詳しくは以下の参考記事を併せてご覧ください。

            参考記事【初心者でも簡単】CSSで要素を中央寄せする4つの方法を解説 | ZeroPlus Media

             

            まとめ:三種の表示形式の使い分けはWeb制作に欠かせない知識

            この記事ではブロックレベル要素とインライン要素、そしてインラインブロック要素の違いについて解説しました。それぞれの表示形式によって特徴に違いがあります。簡単におさらいしてみましょう。

            並び方

            並び方はブロックレベル要素が縦並びになるのに対し、インライン要素とインラインブロック要素は横並びになります。

             

            幅と高さ

            ブロックレベル要素とインラインブロック要素はCSSを使って幅と高さを指定できますが、インライン要素は幅と高さを指定できません。

             

            余白

            同じくブロックレベル要素とインラインブロック要素はCSSを使って自由に余白を指定できます。しかし、インライン要素は左右にのみしか余白を作れません。

            これらの表示形式の使い分けは、Webサイトを制作するための基本的な知識でありつつも、大変重要なポイントです。正しく理解すれば想定通りにCSSが実装できるようになります。

            最初は難しく感じるかもしれませんが、それぞれの違いを意識しながらコーディングしていきましょう。諦めずに練習することがコーディングスキルの向上につながります。

            ZeroPlus Gateについて

            プログラミング学習でこのような経験はありませんか?

            1. 目標に向けて何を学べば良いかわからない
            2. 調べても解決策が見つからない
            3. 現場レベルのスキルが身につくのか不安

            これらの悩みは、学習環境を整えることで全て解決することができます。

            ZeroPlus Gateでは、30日間無料で最適な学習環境を提供しています。

            1. なんでも相談できる専属メンター
            2. いつでも技術相談ができるプロ講師
            3. 元IT企業CTO監修のカリキュラム

            条件なしでこのレベルの環境を無料で提供しているのはZeroPlus Gateだけです。
            ただし、無料サービスの提供には参加者の数に制限があります。

            少しでも興味がある方は、以下のリンクからサービスの詳細をご覧ください。

            今すぐZeroPlus Gateの詳細を見る

            \ 学んだことをSNSでシェアしよう /

            おすすめのタグ

            この記事の執筆者

            ZeroPlus Media変種部

            ZeroPlus Media編集部

            ZeroPlusは、「フリーランス特化型プログラミングスクール」です。ZeroPlus Mediaでは、フリーランスとして活躍する際に役立つ有益なプログラミングやWeb制作に関する情報を発信しています。

            質問について

            ZeroPlus Media読者限定で質問対応をおこなっています。以下の2つの方法で質問を受け付けています。

            選べる2つの質問方法

            1

            Google Foam(テキスト)で質問

            mail

            フォーム送信

            メールで解答

            formで質問
            2

            Google meet(オンラインmtg)で質問

            meet

            日時選択

            メールを受け取る

            メールからmtgに参加

            meetで質問
            ZeroPlus Gateについて

            あなたの目的に合わせた2つのサービス

            あなたの目的に合わせたZeroPlusの2つのサービス
            基礎からフリーランスレベルまで本質的な学びを提供しています

            完全無料!30日間で学びきれる
            プログラミンスクールZeroPlus Gate

            • お金をかけずに、学習を進めたい
            • Webサイトを作れるようになりたい
            • メンターや講師に質問しながら学習したい

            詳しくはこちらから

            フリーランス特化型
            プログラミングスクール ZeroPlus

            • プログラミング学習で悩んでいる
            • 仲間と一緒に学習したい
            • フリーランスとしての総合的な力を養いたい

            詳しくはこちらから