私は別のアプローチを取りました。幅は同じままですが、高さは異なります。個々の img をフローティングするのではなく、列内に img を配置し、列をフロートする方が良い (そして簡単) と思います。
ライブデモ、ブラウザなどのサイズを変更してみてください...
HTML
<div id="image_box">
<div class="col">
<img><img><img><img><img><img>
</div>
<div class="col">
<img><img><img><img><img><img>
</div>
<div class="col">
<img><img><img><img><img><img>
</div>
<div class="col">
<img><img><img><img><img><img>
</div>
<div class="col">
<img><img><img><img><img><img>
</div>
</div>
CSS
#image_box {
width:90%;
margin:0px auto;
}
.col {
width:18%;
float:left;
margin:0px 1%;
}
img{
width:100%;
height:auto;
margin-top:6%;
}
これを比較的迅速にまとめました。レイアウトを改善したい場合は、 に別の幅を指定して、.image_box
列を他の列の下にオーバーフローさせることができます。