In this example:

Ajax Load More and Masonry combine to create an infinite scrolling flexible grid layout.

Masonry is a popular JS plugin used to place elements in optimal position based on available vertical space, sort of like a mason fitting stones in a wall.

🔥  Ajax Load More 4.1+ added support for modifying Masonry options → view docs


The following CSS is used to layout the .grid-item elements within Masonry.

.ajax-load-more-wrap ul.alm-listing li.grid-item {
	border: 1px solid #efefef;
	width: 47%;
	margin: 0 1.5% 3%;
	float: left;
	display: inline;
}

@media screen and (max-width: 480px) {
	.ajax-load-more-wrap ul.alm-listing li.grid-item {
		width: 100%;
		margin: 0 0 20px;
	}
}
CSS
<li class="grid-item"> 
   <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
      <?php the_post_thumbnail('alm-cta'); ?>
   </a>
   <h3>
      <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
         <?php the_title(); ?>
      </a>
   </h3>
   <p class="entry-meta"><?php the_time("F d, Y"); ?></p>
   <?php the_excerpt(); ?>
   <div class="launch">
      <a href="<?php the_permalink(); ?>">View Details</a>
   </div> 
</li>
PHP

The following shortcode was used to create the Masonry example.

[ajax_load_more repeater="template_8" post_type="post" posts_per_page="4" label="Load More" transition="masonry" masonry_selector=".grid-item" masonry_animation="slide-up"]

The following Repeater Template was used to create the Masonry example.