Learn how to create an image gallery that varies between four, two or full-width images, depending on screen size:
<!DOCTYPE html> <html> <style> * { box-sizing: border-box; } body { margin: 0; font-family: Arial; } .header { text-align: center; padding: 32px; } .row { display: -ms-flexbox; /* IE10 */ display: flex; -ms-flex-wrap: wrap; /* IE10 */ flex-wrap: wrap; padding: 0 4px; } /* Create four equal columns that sits next to each other */ .column { -ms-flex: 25%; /* IE10 */ flex: 25%; max-width: 25%; padding: 0 4px; } .column img { margin-top: 8px; vertical-align: middle; } /* Responsive layout - makes a two column-layout instead of four columns */ @media screen and (max-width: 800px) { .column { -ms-flex: 50%; flex: 50%; max-width: 50%; } } /* Responsive layout - makes the two columns stack on top of each other instead of next to each other */ @media screen and (max-width: 600px) { .column { -ms-flex: 100%; flex: 100%; max-width: 100%; } } </style> <body> <!-- Header --> <div class="header"> <h1>Responsive Image Grid</h1> <p>Resize the browser window to see the responsive effect.</p> </div> <!-- Photo Grid --> <div class="row"> <div class="column"> <img src="1.jpg" style="width:100%"> <img src="2.jpg" style="width:100%"> <img src="3.png" style="width:100%"> <img src="4.jpg" style="width:100%"> </div> <div class="column"> <img src="underwater.jpg" style="width:100%"> <img src="rocks.jpg" style="width:100%"> <img src="underwater.jpg" style="width:100%"> </div> <div class="column"> <img src="birthday.jpg" style="width:100%"> <img src="nature.jpg" style="width:100%"> <img src="fish.jpg" style="width:100%"> <img src="paris.jpg" style="width:100%"> </div> <div class="column"> <img src="water.jpg" style="width:100%"> <img src="mountainskies.jpg" style="width:100%"> <img src="sun.jpg" style="width:100%"> </div> </div> </body> </html>