画像の下に空く謎の隙間

2025-03-15T00:00:00+09:00 | 2分で読めます | 更新日時 2025-03-15T00:00:00+09:00

@
このエントリーをはてなブックマークに追加
画像の下に空く謎の隙間

HTMLのコーディングをしていると、画像の下に隙間が空いていることに気づくことはありませんか?
対処方法は知ってはいても、なぜ隙間が空くのか考えてみると面白いです。

画像の下に隙間が空く

事例:
https://jsbin.com/nimedav/edit?html,css,output

divの中にimgが入っていて、divの内部は100pxの大きさがあります。
そしてこの画像は正方形なので、隙間ができるはずがないように思えます。

でも実際は以下のように下に隙間が出てしまいます。

これを対処する方法はいくつかあります。

(1)
img タグに vertical-align: topvertical-align: bottom を付けます。

(2)
img タグを display: block でブロック要素に変えます。

なぜ画像の下に隙間が空く?

imginline-block のような振る舞いをします。
つまり文字と横並びになります。

そうすると、以下のように画像と文字が横に並びます。

この時注目するのは、画像の下の余白と g の文字の下のでっぱり部分です。
abc と違って g は下に出っ張ります。そのための余白が文字の下にあらかじめ設けられているわけです。

これは画像にも影響します。
なぜなら vertical-align (行ボックスの中でインラインやインラインブロックの垂直方向配置方法)が baseline になっていて、それは inline-block にも影響を与えるからです。

よって、画像に対して vertical-align: topvertical-align: bottom を設定することで baseline から生まれる隙間が無くなるわけです。

同様に display: block にしてしまえば、 vertical-align の影響は受けないので、隙間が無くなります。

 

調べてそのまま使うのもいいんですが、こうして仕組みを知っておくなら、 vertical-align を少し理解でき適切に利用することができるでしょうね。

 

© 2024 - 2025 EICON Web Site

🌱 Powered by Hugo with theme Dream.

このブログについて

もう30年近くプログラマーを続けている なんちゃってプログラマーが技術的なことをメモしたり、誰かに伝えるために記録しているブログです。

不正確な点があったり、もっと効率的な方法があると思います。その点は個人ブログだと思って辛抱していただければ幸いです。

このブログを書いている人

ShigeUe こと植西重史と申します。

「エイコン」という屋号でフリーランスとしてWebシステムやWebページ制作でのんびりまったりとお仕事をさせていただいております。
「エイコン」は「どんぐり」の英訳の acorn (エイコーンと読む)とパソコンなどの「コン」部分を合わせた造語です。

得意分野はPHP/Laravel、HTML・CSS、JavaScriptでしょうか。HTMLはセマンティックを意識したページの作成を心掛けております。

お仕事など、お問い合わせは以下のフォームからお願い致します。
EICONへのお問い合わせ