Dynamic Grid Layout With Masonry

What is Masonry?
Masonry is a JavaScript grid layout library. It works by placing elements in optimal position based on available vertical space.

Add JQuery & Masonry script
Add JQuery and Masonry script in head tag.

Add JQuery & Masonary script
1
2
<script type="text/javascript" src="jquery-1.9.1.js"></script>
<script type="text/javascript" src="masonry.pkgd.js"></script>

Create Item
All items are wrapped in a container.

Create Item
1
2
3
4
5
<div id="container">
  <div class="box-item">Item1</div>
  <div class="box-item">Item2</div>
  <div class="box-item">Item3</div>
</div>

Create Item CSS style
Item style should be floated.

Create Item CSS style
1
2
3
4
5
6
.box-item {
  width: 220px;
  height: 220px;
  margin: 10px;
  float: left;
}

Run Masonry
The script to run Masonry.

Masongry script
1
2
3
4
5
$(function(){
  $('#container').masonry({
    itemSelector: '.box-item'
  });
});

Full Code

Full Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8" />
  <title></title>
  <style type="text/css">
    .box-item {
      width: 220px;
      padding: 10px;
      margin: 5px;
      float: left;
      border: 1px solid #CCC;
      border-radius: 4px;
      -moz-border-radius: 4px;
    }
  </style>
  <script type="text/javascript" src="jquery-1.9.1.js"></script>
  <script type="text/javascript" src="masonry.pkgd.js"></script>
  <script type="text/javascript">
    $(function(){
      $('#container').masonry({
        itemSelector: '.box-item'
      });
    });
  </script>
</head>
<body>
  <div id="container">
    <div class="box-item">
      Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
    </div>
    <div class="box-item">
      Morbi purus libero, faucibus adipiscing, commodo quis, gravida id, est. Sed lectus. Praesent elementum hendrerit tortor. Sed semper lorem at felis.
      Sed ac risus. Phasellus lacinia, magna a ullamcorper laoreet, lectus arcu pulvinar risus, vitae facilisis libero dolor a purus. Sed vel lacus. Mauris nibh felis, adipiscing varius, adipiscing in, lacinia vel, tellus. Suspendisse ac urna. Etiam pellentesque mauris ut lectus. Nunc tellus ante, mattis eget, gravida vitae, ultricies ac, leo. Integer leo pede, ornare a, lacinia eu, vulputate vel, nisl.
    </div>
    <div class="box-item">
      Sit amet mi ullamcorper vehicula Ut convallis, sem sit amet interdum consectetuer, odio augue aliquam leo, nec dapibus tortor nibh sed augue. Sed vel lacus. Mauris nibh felis, adipiscing varius, adipiscing in, lacinia vel, tellus. Suspendisse ac urna. Etiam pellentesque mauris ut lectus. Nunc tellus ante, mattis eget, gravida vitae, ultricies ac, leo. Integer leo pede, ornare a, lacinia eu, vulputate vel, nisl.
    </div>
    <div class="box-item">
      usce accumsan mollis eros. Pellentesque a diam sit amet mi ullamcorper vehicula
      Morbi interdum mollis sapien. Sed ac risus. Phasellus lacinia, magna a ullamcorper laoreet, lectus arcu pulvinar risus, vitae facilisis libero dolor a purus.
    </div>
    <div class="box-item">
      Ut convallis, sem sit amet interdum consectetuer, odio augue aliquam leo, nec dapibus tortor nibh sed augue.
      Ut condimentum mi vel tellus. Suspendisse laoreet. Fusce ut est sed dolor gravida convallis. Morbi vitae ante. Vivamus ultrices luctus nunc. Suspendisse et dolor. Etiam dignissim. Proin malesuada adipiscing lacus. Donec metus. Curabitur gravida.
    </div>
    <div class="box-item">
      Ut condimentum mi vel tellus. Suspendisse laoreet. Fusce ut est sed dolor gravida convallis. Morbi vitae ante. Vivamus ultrices luctus nunc. Suspendisse et dolor.
      Phasellus pede arcu, dapibus eu, fermentum et, dapibus sed, urna.
    </div>
    <div class="box-item">
      Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio. Quisque volutpat mattis eros. Nullam malesuada erat ut turpis. Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.
    </div>
    <div class="box-item">
      Morbi purus libero, faucibus adipiscing, commodo quis, gravida id, est. Sed lectus. Praesent elementum hendrerit tortor. Sed semper lorem at felis.
      Sed ac risus. Phasellus lacinia, magna a ullamcorper laoreet, lectus arcu pulvinar risus, vitae facilisis libero dolor a purus. Sed vel lacus. Mauris nibh felis, adipiscing varius, adipiscing in, lacinia vel, tellus. Suspendisse ac urna. Etiam pellentesque mauris ut lectus. Nunc tellus ante, mattis eget, gravida vitae, ultricies ac, leo. Integer leo pede, ornare a, lacinia eu, vulputate vel, nisl.
    </div>
    <div class="box-item">
      Sit amet mi ullamcorper vehicula Ut convallis, sem sit amet interdum consectetuer, odio augue aliquam leo, nec dapibus tortor nibh sed augue. Sed vel lacus. Mauris nibh felis, adipiscing varius, adipiscing in, lacinia vel, tellus. Suspendisse ac urna. Etiam pellentesque mauris ut lectus. Nunc tellus ante, mattis eget, gravida vitae, ultricies ac, leo. Integer leo pede, ornare a, lacinia eu, vulputate vel, nisl.
    </div>
    <div class="box-item">
      usce accumsan mollis eros. Pellentesque a diam sit amet mi ullamcorper vehicula
      Morbi interdum mollis sapien. Sed ac risus. Phasellus lacinia, magna a ullamcorper laoreet, lectus arcu pulvinar risus, vitae facilisis libero dolor a purus.
    </div>
    <div class="box-item">
      Ut convallis, sem sit amet interdum consectetuer, odio augue aliquam leo, nec dapibus tortor nibh sed augue.
      Ut condimentum mi vel tellus. Suspendisse laoreet. Fusce ut est sed dolor gravida convallis. Morbi vitae ante. Vivamus ultrices luctus nunc. Suspendisse et dolor. Etiam dignissim. Proin malesuada adipiscing lacus. Donec metus. Curabitur gravida.
    </div>
    <div class="box-item">
      Ut condimentum mi vel tellus. Suspendisse laoreet. Fusce ut est sed dolor gravida convallis. Morbi vitae ante. Vivamus ultrices luctus nunc. Suspendisse et dolor.
      Phasellus pede arcu, dapibus eu, fermentum et, dapibus sed, urna.
    </div>
  </div>
</body>
</html>

You can download the source code and try it out.