Simple and fully responsive, this image grid includes a text overlay to put the image title. Made to have minimal white space it is a perfect template for a gallery or portfolio site.
Source code below
the HTML:
<div class="container"> <div class="row"> <div class="col-lg-3 col-md-3 col-sm-6 col-xs-6"> <a href="#"><img class='img-fluid w-100 main-img' src="https://placeimg.com/800/460/nature" alt="image"/></a> <div class="centered"><h3 class="img-overlay">Header</h3></div> </div> <div class="col-lg-3 col-md-3 col-sm-6 col-xs-6"> <a href="#"><img class='img-fluid w-100 main-img' src="https://placeimg.com/800/460/nature" alt="image"/></a> <div class="centered"><h3 class="img-overlay">Header</h3></div> </div> <div class="col-lg-3 col-md-3 col-sm-6 col-xs-6"> <a href="#"><img class='img-fluid w-100 main-img' src="https://placeimg.com/800/460/nature" alt="image"/></a> <div class="centered"><h3 class="img-overlay">Header</h3></div> </div> <div class="col-lg-3 col-md-3 col-sm-6 col-xs-6"> <a href="#"><img class='img-fluid w-100 main-img' src="https://placeimg.com/800/460/nature" alt="image"/></a> <div class="centered"><h3 class="img-overlay">Header</h3></div> </div> </div> <div class="row"> <div class="col-lg-3 col-md-3 col-sm-6 col-xs-6"> <a href="#"><img class='img-fluid w-100 main-img' src="https://placeimg.com/800/460/nature" alt="image"/></a> <div class="centered"><h3 class="img-overlay">Header</h3></div> </div> <div class="col-lg-3 col-md-3 col-sm-6 col-xs-6"> <a href="#"><img class='img-fluid w-100 main-img' src="https://placeimg.com/800/460/nature" alt="image"/></a> <div class="centered"><h3 class="img-overlay">Header</h3></div> </div> <div class="col-lg-3 col-md-3 col-sm-6 col-xs-6"> <a href="#"><img class='img-fluid w-100 main-img' src="https://placeimg.com/800/460/nature" alt="image"/></a> <div class="centered"><h3 class="img-overlay">Header</h3></div> </div> <div class="col-lg-3 col-md-3 col-sm-6 col-xs-6"> <a href="#"><img class='img-fluid w-100 main-img' src="https://placeimg.com/800/460/nature" alt="image"/></a> <div class="centered"><h3 class="img-overlay">Header</h3></div> </div> </div> <div class="row"> <div class="col-lg-3 col-md-3 col-sm-6 col-xs-6"> <a href="#"><img class='img-fluid w-100 main-img' src="https://placeimg.com/800/460/nature" alt="image"/></a> <div class="centered"><h3 class="img-overlay">Header</h3></div> </div> <div class="col-lg-3 col-md-3 col-sm-6 col-xs-6"> <a href="#"><img class='img-fluid w-100 main-img' src="https://placeimg.com/800/460/nature" alt="image"/></a> <div class="centered"><h3 class="img-overlay">Header</h3></div> </div> <div class="col-lg-3 col-md-3 col-sm-6 col-xs-6"> <a href="#"><img class='img-fluid w-100 main-img' src="https://placeimg.com/800/460/nature" alt="image"/></a> <div class="centered"><h3 class="img-overlay">Header</h3></div> </div> <div class="col-lg-3 col-md-3 col-sm-6 col-xs-6"> <a href="#"><img class='img-fluid w-100 main-img' src="https://placeimg.com/800/460/nature" alt="image"/></a> <div class="centered"><h3 class="img-overlay">Header</h3></div> </div> </div> </div>
The CSS:
body { background: #fafafa; } .main-img { padding-bottom: 4rem; } .col-sm-3, .col-md-3, .col-lg-3 { padding: 0.15rem; margin-bottom: -4rem; } .centered { position: absolute; top: 62%; left: 20%; transform: translate(-50%, -50%); } @media (max-width: 992px) { .centered { position: absolute; top: 48%; left: 30%; transform: translate(-50%, -50%); } } @media (max-width: 977px) { .centered { position: absolute; top: 54%; left: 28%; transform: translate(-50%, -50%); } } @media only screen and (max-width: 891px) { .centered { top: 48%; left: 30%; transform: translate(-50%, -50%); } } @media only screen and (max-width: 891px) { .centered { top: 48%; left: 28%; transform: translate(-50%, -50%); } } @media only screen and (max-width: 767px) { .centered { top: 64%; left: 20%; transform: translate(-50%, -50%); } } @media only screen and (max-width: 575px) { .centered { top: 76%; left: 10%; transform: translate(-50%, -50%); } } @media only screen and (max-width: 545px) { .centered { top: 76%; left: 10%; transform: translate(-50%, -50%); } } @media only screen and (max-width: 408px) { .centered { top: 72%; left: 14%; transform: translate(-50%, -50%); } } .img-overlay { color: white; opacity: 0.7; font-size: 1.4rem; }
View on Codepen here.