Edit This Code:
See Result »
<!DOCTYPE html> <html> <head> <style> /* The Image Box */ div.img { border: 1px solid #ccc; } div.img:hover { border: 1px solid #777; } /* The Image */ div.img img { width: 100%; height: auto; cursor: pointer; } /* Description of Image */ div.desc { padding: 15px; text-align: center; } * { box-sizing: border-box; } /* Add Responsiveness */ .responsive { padding: 0 6px; float: left; width: 24.99999%; } /* The Modal (background) */ .modal { display: none; /* Hidden by default */ position: fixed; /* Stay in place */ z-index: 1; /* Sit on top */ padding-top: 100px; /* Location of the box */ left: 0; top: 0; width: 100%; /* Full width */ height: 100%; /* Full height */ overflow: auto; /* Enable scroll if needed */ background-color: rgb(0,0,0); /* Fallback color */ background-color: rgba(0,0,0,0.9); /* Black w/ opacity */ } /* Modal Content (image) */ .modal-content { margin: auto; display: block; width: 80%; max-width: 700px; } /* Caption of Modal Image */ #caption { margin: auto; display: block; width: 80%; max-width: 700px; text-align: center; color: #ccc; padding: 10px 0; height: 150px; } /* Add Animation */ .modal-content, #caption { -webkit-animation-name: zoom; -webkit-animation-duration: 0.6s; animation-name: zoom; animation-duration: 0.6s; } @-webkit-keyframes zoom { from {transform:scale(0)} to {transform:scale(1)} } @keyframes zoom { from {transform:scale(0.1)} to {transform:scale(1)} } /* The Close Button */ .close { position: absolute; top: 15px; right: 35px; color: #f1f1f1; font-size: 40px; font-weight: bold; transition: 0.3s; } .close:hover, .close:focus { color: #bbb; text-decoration: none; cursor: pointer; } /* Responsive Columns */ @media only screen and (max-width: 700px){ .responsive { width: 49.99999%; margin: 6px 0; } .modal-content { width: 100%; } } @media only screen and (max-width: 500px){ .responsive { width: 100%; } } /* Clear Floats */ .clearfix:after { content: ""; display: table; clear: both; } </style> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "//hm.baidu.com/hm.js?73c27e26f610eb3c9f3feb0c75b03925"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </head> <body> <h2 style="text-align:center">Advanced Image Gallery</h2> <div class="responsive"> <div class="img"> <img src="img_fjords.jpg" alt="Trolltunga Norway" width="300" height="200"> <div class="desc">Trolltunga Norway</div> </div> </div> <div class="responsive"> <div class="img"> <img src="img_forest.jpg" alt="Forest" width="300" height="200"> <div class="desc">Forest Bridge</div> </div> </div> <div class="responsive"> <div class="img"> <img src="img_lights.jpg" alt="Northern Lights" width="300" height="200"> <div class="desc">Northern Lights, Norway</div> </div> </div> <div class="responsive"> <div class="img"> <img src="img_mountains.jpg" alt="Mountains" width="300" height="200"> <div class="desc">Beautiful Mountains</div> </div> </div> <div class="clearfix"></div> <!-- The Modal --> <div id="myModal" class="modal"> <span class="close">�</span> <img class="modal-content" id="img01"> <div id="caption"></div> </div> <script> // Get the modal var modal = document.getElementById('myModal'); // Get the <span> element that closes the modal var span = document.getElementsByClassName("close")[0]; // When the user clicks on <span> (x), close the modal span.onclick = function() { modal.style.display = "none"; } // Get all images and insert the clicked image inside the modal // Get the content of the image description and insert it inside the modal image caption var images = document.getElementsByTagName('img'); var modalImg = document.getElementById("img01"); var captionText = document.getElementById("caption"); var i; for (i = 0; i < images.length; i++) { images[i].onclick = function(){ modal.style.display = "block"; modalImg.src = this.src; modalImg.alt = this.alt; captionText.innerHTML = this.nextElementSibling.innerHTML; } } </script> <div style="padding:6px;"> <p>This example combines CSS3 (animation and media queries) and JavaScript, to create a responsive image gallery that will enlarge an image when it is clicked on.</p> </div> </body> </html>
Result: