imgタグを配置したときに、画像の下に空白(隙間)ができて困ったことはありませんか?
htmlのコードの空白や改行を削除しても消えないし。
この空白(隙間)ってなに?と思った人も多いと思います。私は気になって気になって仕方ありませんでした。
空白(隙間)ができる原因
まずは、画像の下の空白(隙間)を確認してみましょう。
htmlとCSSに次のようなコードを書きます。
html
<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="utf-8">
    <title>画像の下の空白(隙間)</title>
    <link rel="stylesheet" href="style.css">
  </head>
  <body>
    <div>
      <img src="img-vertical-align.png">
    </div>
  </body>
</html>CSS
body{
  background: #eee;
}
div{
  background: #fdd000;
  margin: 0 auto;
}
サンプルではわかりやすいように、画像の背景色を黄色に設定しています。
ブラウザで確認してみると画像の下に空白(隙間)が確認できます。
※黄色の部分が空白(隙間)です。

コードの空白や改行を消しても空白(隙間)は消えません。どうして画像の下に空白(隙間)ができるのでしょうか?
それは、imgタグなどのインライン要素の初期値に「vertical-align: baseline」が設定されているのが原因です。
画像の下の空白(隙間)を消す方法
画像の下の空白(隙間)を消す方法は簡単です。
「vertical-align」に「baseline」以外のものを指定するだけで解決します。
実際にimgタグに「vertical-align: beseline」以外を指定して、この空白(隙間)を消してみましょう。
CSS
body{
  background: #eee;
}
div{
  width: 400px;
  background: #fdd000;
  margin: 0 auto;
}
/* 「vertical-align: beseline」以外を指定  */
img{
  vertical-align: top;
}
結果

画像の下の空白(隙間)がなくなりましたね。
サンプルでは「top」を設定していますが、「middle」や「bottom」でも大丈夫です。
まとめ
画像の下の空白(隙間)を消すことはできましたか?この空白(隙間)があるとデザイン通りにコーディングできない…なんてこともあるかもしれません。
画像の下の空白(隙間)はなくても問題ないと思いますので、imgの「vertical-align」の指定はしておくことをおすすめします!

