【入門編】インライン要素のボックスモデルの制限 – HTML実践ガイド

インライン要素の「余白」が効かない?その正体と付き合い方をやさしく解説します

Web制作を学び始めると、誰もが一度は「あれ、なんでこの余白、動かないの?」という壁にぶつかります。

特に``や``といった「インライン要素」を使っているとき、`margin-top`や`padding-bottom`を一生懸命指定しても、ブラウザが知らんぷりをしてくる……そんな経験はありませんか?

「自分の書き方が悪いのかな?」なんて落ち込む必要は全くありません! これはあなたが悪いのではなく、インライン要素という「住人」の性質によるものなんです。

今日は、この「余白の謎」を、日常生活のイメージを交えながらスッキリ解決していきましょう。

—

1. 「インライン要素」は、本のなかの「言葉」と同じ

まずは、インライン要素がどんな存在かを知ることから始めましょう。

ブロックレベル要素(`

`や`

`など)が、Webページの中で「大きな段ボール箱」だとしたら、インライン要素(``や``など)は、文章の中にある「一単語」のようなものです。

例えば、本を読んでいるときに、ある単語の「上と下」を無理やり広げたらどうなるでしょうか? 文章の行間が崩れて、読みづらくなってしまいますよね。

ブラウザは「文章の自然な流れを乱してはいけない」という優しいルールを持っています。そのため、インライン要素の「上下」の余白は、基本的に無視される(あるいは反映されても他の要素と重なってしまう)ようになっているんです。

なぜ「上下」だけダメなの?

  • 左右の余白(margin-left/right): お隣の文字と距離をとるだけなので、文章の流れを邪魔しません。だからOKです。
  • 上下の余白(margin-top/bottom): 無理に広げると「行間」を破壊してしまいます。だからNGなのです。

—

2. 実際に試してみよう:何が起きているのか

まずは、うまくいかない例を見てみましょう。


ここを押してね!

これは次の行の文章です。

このコードをブラウザで見ると、`background-color`(背景色)だけは縦に伸びているように見えるかもしれませんが、隣の要素や行との距離は変わっていないはずです。これが「インライン要素の限界」です。

—

3. 「余白をつけたい!」という願いを叶える魔法

「それでも、ボタンっぽく見せたいから上下に余白がほしい!」という時もありますよね。そんなときは、「インラインブロック(inline-block)」という魔法を使いましょう。

これは、インライン要素の「横に並べる」性質と、ブロックレベル要素の「箱としての余白をしっかり持つ」性質をいいとこ取りしたものです。


リンクボタン

`display: inline-block;` を指定した瞬間、その要素は「単なる文字」から「しっかりした箱」に変身します。これで、上下の余白も自由自在です。

—

4. まとめ:つまずいた時の処方箋

最後に、ポイントを整理しておきましょう。

1. インライン要素(span, a, strongなど)は「文章の一部」: 基本的に上下の余白は効きません。
2. 無視されるのではなく「行間を守っている」: ブラウザは親切心でそうしています。
3. 余白が必要なら `display: inline-block;`: これで、インラインの「横並び」を維持したまま、「箱」としての余白を持たせることができます。

もし、また「あれ?余白が効かない!」と思ったら、心の中でこう呟いてみてください。
「あ、今は『文章の一単語』として扱われているんだな。よし、『箱』に変身させてあげよう!」

Web制作は、こうした小さな仕組みの積み重ねです。一つひとつ理解していけば、必ず思い通りのレイアウトが作れるようになりますよ。応援しています!

コメント

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