<div class="container"> <img src="http://www.warrenphotographic.co.uk/photography/cats/30081.jpg" alt=""> <img src="http://iwallhd.com/stock/yellow-labrador-retriever-puppy-white-background.jpg" alt=""> <img src="http://i.imgur.com/nZlaeSH.jpg" alt=""> <img src="http://www.cuter.cn/wp-content/uploads/2013/08/1375453731.jpg" alt=""> <img src="https://puppydogweb.com/wp-content/uploads/2015/05/puppy-wallpaper-dancing-little-dogs-.jpg" alt=""> <img src="http://www.petsworld.in/blog/wp-content/uploads/2015/03/How-To-Make-Your-Puppy-Gain-Weight.jpg" alt=""> <img src="http://www.dogster.com/wp-content/uploads/2015/05/dalmatian-puppies-04.jpg" alt=""> <img src="http://indiabright.com/wp-content/uploads/2015/10/Gallery-of-Dogs-Balancing-Cupcakes-539445.jpg" alt=""> <img src="https://s-media-cache-ak0.pinimg.com/236x/63/60/39/6360396daf54afd024d181b6567a8c28.jpg" alt=""> <img src="https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcSr7jvGrFyqNOWgqfMD5t5zgOOf66pfGLVM8Jv0Uj16gfufLQTF" alt=""> <img src="https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcR24wc_yoDK_i3nm6o6IV77ggd9KzBiBR9wwBlU3-bIgIEz9bMT" alt=""> <img src="http://justcuteanimals.com/wp-content/uploads/2015/01/puppy-love-cute-yellow-lab-puppies-pups-dogs-animals-pictures-pics.jpg" alt=""> <img src="http://omgcutethings.com/wp-content/uploads/2014/08/puppy-love-005-08092014.jpg" alt=""> <img src="http://www.dallasvoice.com/wp-content/uploads/2015/03/puppy-2.jpg" alt=""> <img src="http://www.perseyspetgrooming.com/images/puppy.png" alt=""> </div>
$(function(){ mosaicGrid('.container', 'img'); }); function mosaicGrid(selector,target) { var cols = [0,0,0,0]; var allTarget = $(selector).find(target); if (0 === allTarget.length) return; allTarget.one('load', function(e){ var pos = minPos(cols); var x = pos * 100/cols.length; var y = cols[pos]; $(this).css({left: x + "%", top: y + "px", width: Math.floor(100/cols.length)+"%"}); cols[pos] = cols[pos] + $(this).height(); $(selector).height(Math.max.apply(null, cols) ); $(this).off(e); }).each(function(){ if(this.complete) $(this).trigger('load'); }); } function minPos(arr) { var min = Math.min.apply(null, arr); for(var i = 0; i < arr.length; i++) { if (min === arr[i]) return i; } }
.container { position: relative; width: 100%; height: 50px; } img { position: absolute; }