画像と画像の間に隙間ができてしまう時の解決策

WinIE(互換モード・標準モード)で、cssでmarginやpaddingを付加していないのに、意図していない空きができてしまう事があります。
基本的には、以下のどれかで解決できると思います。

  1. 改行コードを削除する(互換・標準)
  2. <br>で改行を明示する or ブロック要素で囲む(仕様的に後者がベターでしょうか)(互換)
  3. cssのline-heightを0にする(標準)

1. 改行コードを削除する

以下のキャプチャのように、横並びのimgの間に、空きができてしまう場合。

Before

  • HTML
<div>
<img src="img.jpg" alt="" width="300" height="400">
<img src="img.jpg" alt="" width="300" height="400">
</div>
After

imgとimgの間の改行コードを削除します。(互換モード・標準モードどちらも)

  • HTML
<div>
<img src="img.jpg" alt="" width="300" height="400"><img src="img.jpg" alt="" width="300" height="400">
</div>

2. <br>で改行を明示する or ブロック要素で囲む

以下のキャプチャのように、縦並びのimgの間に、空きができてしまう場合。
(折り返しによって縦並びにしている)

Before

  • HTML
<div style="width:300px;">
<img src="img.jpg" alt="" width="300" height="400">
<img src="img.jpg" alt="" width="300" height="400">
</div>
After

imgとimgの間に<br>を入れます。もしくは、imgをそれぞれブロック要素(divなど)で囲みます。(互換モード)

  • HTML
<div style="width:300px;">
<img src="img.jpg" alt="" width="300" height="400"><br>
<img src="img.jpg" alt="" width="300" height="400">
</div>

もしくは、

<div style="width:300px;">
<div><img src="img.jpg" alt="" width="300" height="400"></div>
<div><img src="img.jpg" alt="" width="300" height="400"></div>
</div>

3. cssのline-heightを0にする

2.と同様、縦並びのimgの間に、空きができてしまう場合。

After

cssのline-heightを0にします。(標準モード)

  • HTML
<div style="line-height:0;width:300px;">
<img src="img.jpg" alt="" width="300" height="400">
<img src="img.jpg" alt="" width="300" height="400">
</div>