CSSだけでサイズがばらばらの画像を隙間なく配置したい

クライアント様からいただいた、サイトに載せる様の画像のサイズがちょっとバラバラだったので、画像をきれいに並べられないものかと調べてみました。
なるべくお手軽に実装できないかと調べてみたところ、CSSだけでの配置を紹介してくれているサイトがあったので、それに倣って設定してみました。

【サンプル】

【HTML】

<ul class="sample">
 	<li><img src="sample.jpg" alt="" /></li>
 	<li><img src="sample.jpg" alt="" /></li>
 	<li><img src="sample.jpg" alt="" /></li>
 	<li><img src="sample.jpg" alt="" /></li>
 	<li><img src="sample.jpg" alt="" /></li>
 	<li><img src="sample.jpg" alt="" /></li>
 	<li><img src="sample.jpg" alt="" /></li>
 	<li><img src="sample.jpg" alt="" /></li>
 	<li><img src="sample.jpg" alt="" /></li>
</ul>

【CSS】

ul.sample{
/* Prevent vertical gaps */
line-height: 0;
-webkit-column-count: 3;
-webkit-column-gap: 0px;
-moz-column-count: 3;
-moz-column-gap: 0px;
column-count: 3;
column-gap: 0px;
}
ul.sample li{
margin:0;
/* Just in case there are inline attributes */
width: 100% !important;
height: auto !important;
}
ul.sample li img{
width:100%;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-b;
border:solid #fff 1px;
}

画像の「border」と「box-sizing」は、単に枠線が欲しかったから入れただけなので、配置だけなら不要です。
実際に使用した画像はこんなにバラバラじゃなくて、もうちょっと差は少ないので、もう少しきれいにまとまると思います。

※画像は縦並びに配置されるようなので、並び順に意味がある場合は要注意です。

参考にさせて頂いたサイトでは、@mediaを使用して、ビューポートのサイズに合わせて「column-count」を調整して、カラム数を調整したりもしています。
※このサンプルは、PCでは3カラム、スマホ(750px以下)では2カラムにしてあります。

【参考サイト】
http://coliss.com/articles/build-websites/operation/css/css-seamless-responsive-photo-grid-by-css-tricks.html

カテゴリーCSS