How to create: Image Grid
- Previous page Responsive image grid
- Next page Image library
Learn how to create an image grid.
Image Grid
Learn how to create an image gallery where you can switch between four, two, or full-width images by clicking a button:
Create an image grid
Step 1 - Add HTML:
<div class="row"> <div class="column"> <img src="wedding.jpg"> <img src="rocks.jpg"> <img src="falls2.jpg"> <img src="paris.jpg"> <img src="nature.jpg"> <img src="mist.jpg"> <img src="paris.jpg"> </div> <div class="column"> <img src="underwater.jpg"> <img src="ocean.jpg"> <img src="wedding.jpg"> <img src="mountainskies.jpg"> <img src="rocks.jpg"> <img src="underwater.jpg"> </div> <div class="column"> <img src="wedding.jpg"> <img src="rocks.jpg"> <img src="falls2.jpg"> <img src="paris.jpg"> <img src="nature.jpg"> <img src="mist.jpg"> <img src="paris.jpg"> </div> <div class="column"> <img src="underwater.jpg"> <img src="ocean.jpg"> <img src="wedding.jpg"> <img src="mountainskies.jpg"> <img src="rocks.jpg"> <img src="underwater.jpg"> </div> </div>
Step 2 - Add CSS:
Create layout using CSS Flexbox:
.row { display: flex; flex-wrap: wrap; padding: 0 4px; } /* Create two side-by-side equal columns */ .column { flex: 50%; padding: 0 4px; } .column img { margin-top: 8px; vertical-align: middle; }
Step 3 - Add JavaScript:
Create a controllable grid view with JavaScript:
<button onclick="one()">1</button> <button onclick="two()">2</button> <button onclick="four()">4</button> <script> // Get elements with class="column" var elements = document.getElementsByClassName("column"); // Declare a 'loop' variable var i; // Full-width image function one() { for (i = 0; i < elements.length; i++) { elements[i].style.flex = "100%"; } } // Two images side by side function two() { for (i = 0; i < elements.length; i++) { elements[i].style.flex = "50%"; } } // Four images side by side function four() { for (i = 0; i < elements.length; i++) { elements[i].style.flex = "25%"; } } </script>
Related pages
Tutorial:CSS Flexbox
Tutorial:How to create responsive image grid
- Previous page Responsive image grid
- Next page Image library