【入門編】display: inlineとinline-blockの差異 – HTML実践ガイド

「幅が効かない!」と悩むあなたへ。`inline`と`inline-block`の決定的な違いを解説します

HTMLとCSSを学び始めたばかりの頃、誰もが一度はこんな壁にぶつかります。

「文字の中にボタンを置いたのに、なぜか幅や高さを指定しても無視される……!」
「横並びにしたいだけなのに、謎の隙間ができてレイアウトが崩れる!」

これ、実は`display`プロパティという「要素の性格」を決めるルールの仕組みを知るだけで、驚くほどスッキリ解決できるんです。今日は、Web制作の現場でも頻繁に登場する`inline`と`inline-block`という二つの性格について、身近な例え話を交えながら紐解いていきましょう。

—

1. `inline`要素は「文章の一部」という性格

まずは、``タグや``タグ、``タグなどが持っている「`inline`(インライン)」という性格から見ていきましょう。

この子たちは、例えるなら「文章の中に溶け込む単語」です。本の中にある一文字一文字と同じように、前後の文字と肩を並べて生きています。

  • 性格の特徴:
  • 横一列に並ぶ(改行しない)。
  • 自分に必要な分だけの幅しか持たない。
  • 【重要】幅(width)や高さ(height)を指定しても無視される。
  • 上下の余白(margin-top/bottom)も、基本的には効かない。

「幅や高さを指定しても無視される」というのは、彼らが「文章の行列を乱さないように」と健気に振る舞っているから。個人のワガママ(固定サイズ)よりも、文章全体の流れを優先する「空気を読む性格」なんですね。

—

2. `inline-block`は「個性を持ち込めるインライン」

一方で、CSSで`display: inline-block;`を指定した瞬間、その要素は少しだけ性格が変わります。

これは、「文章の中にいるけれど、自分の敷地(幅や高さ)をしっかり主張できる人」というイメージです。横並びというインラインの利点はそのままに、ブロック要素のように「自分専用のボックスサイズ」を自由に設定できるようになります。

  • 性格の特徴:
  • 横一列に並ぶ(これはインラインと同じ!)。
  • 幅(width)や高さ(height)を自由に指定できる。
  • 余白(marginやpadding)もしっかり効く。

まさに「いいとこ取り」のような存在ですね!

—

3. コードで動きを確認してみましょう

言葉だけだと少し硬いので、実際のコードで比較してみます。ぜひ、お手元のエディタにコピペして試してみてくださいね。

私はinlineです。サイズ指定は効きません…
私はinline-blockです!自由なサイズを持てます!

どうでしょう?緑色のボックス(inline-block)だけが、指定したサイズ通りに表示されたはずです。

—

4. 現場でつまずきやすい「謎の隙間」の正体

最後に、現場でみんなが頭を抱えるポイントを一つだけ。

`inline-block`を使うと、要素と要素の間に「数ピクセル程度の謎の隙間」ができることがあります。「marginもpaddingも0にしたのに、なぜ!?」と夜も眠れなくなるかもしれませんが、安心してください。

これはCSSのバグではなく、「HTMLコードを書くときに入れた改行やスペース」が、ブラウザ上で「半角スペース」として認識されているからなんです。

  • 解決策:
  • 親要素に `font-size: 0;` をかけて隙間を消す。
  • HTMLのタグ同士を改行せずにくっつけて書く。
  • 最近では `display: flex;` (フレックスボックス)を使って横並びにする手法が主流。

—

最後に:完璧に覚えようとしなくて大丈夫!

「`inline`だっけ? `inline-block`だっけ?」と迷うことは、プロの現場でもよくあります。最初は「横並びにしたいなら`inline`の仲間かな? サイズ指定したいなら`inline-block`にすればいいんだな」と、それくらいの感覚で使い始めてみてください。

失敗してレイアウトが崩れても、「あ、この子(要素)は今、こういう性格で振る舞っているんだな」と観察してあげれば、CSSは必ずあなたの思い通りに動いてくれます。

Web制作の世界へようこそ。焦らず、少しずつ楽しんでいきましょうね!

コメント

タイトルとURLをコピーしました