JINMUSOFTWARE

IMGタグの隙間問題

imgタグを並べたりすると横や下側に隙間が発生します。改行とBaselineが原因です。

IMGタグを横に並べると隙間が発生する問題

こんな感じでimgタグを使用すると…

<div>
  <img src="cat.png" />
  <img src="cat.png" />
  <img src="cat.png" />
</div>
a green cat a green cat a green cat

画像の間に隙間が表示されています。HTMLコードの改行が原因です。

以下の様に改行しないで1行で書くように変更してみると。

<div>
  <img src="cat.png" /><img src="cat.png" /><img src="cat.png" />
</div>
a green cata green cata green cat

隙間が消えました。

imgタグはインライン要素としっかり認識すること。

HTML5になってからは、インライン要素と呼ばず、Phrasing content と定義されています。

IMGタグの下の隙間問題

こんな感じでimgタグを使ってみると。

<p class="good-color">
  <img src="cat.png" />
</p>

green

画像の下側に隙間が発生しています。解決してみましょう。

原因は、インライン要素であるimgタグは通常、Baselineに乗っているからです。

imgタグのvertical-alignを変更する

middleに変更してみました。

<style>
.catimg1 {
  vertical-align: middle;
}
</style>
<p class="good-color">
  <img class="catimg1" src="cat.png" />
</p>

green

imgタグの下側の隙間を解消するために使用できるvertical-alignプロパティの値は、top、bottom、middleです。他の値は大小あれ隙間が発生していました。使用するフォントによって多少変わると思います。

imgタグをブロック要素に変更する

inline-block; はダメですよ。

<style>
.catimg2 {
  display: block;
}
</style>
<p class="good-color">
  <img class="catimg2" src="cat.png" />
</p>

green

おわり