Responsive Image Grid View

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>

Leave a Reply

Your email address will not be published. Required fields are marked *