インライン要素の「余白」が効かない?その正体と付き合い方をやさしく解説します
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制作は、こうした小さな仕組みの積み重ねです。一つひとつ理解していけば、必ず思い通りのレイアウトが作れるようになりますよ。応援しています!

コメント