<div class="container"> <div class="row"> <div class="col-xs-3 col-sm-3"> <div class="image-box ratio-1-1"> <div class="image" style="background-image:url(https://placeimg.com/640/480/animals);"></div> </div> </div> <div class="col-xs-4 col-sm-4"> <div class="image-box ratio-1-1"> <div class="image" style="background-image:url(https://placeimg.com/640/480/animals);"></div> </div> </div> <div class="col-xs-5 col-sm-5"> <div class="image-box ratio-1-1"> <div class="image" style="background-image:url(https://placeimg.com/640/480/animals);"></div> </div> </div> </div> <div class="row"> <div class="col-xs-3 col-sm-3"> <div class="image-box ratio-5-3"> <div class="image" style="background-image:url(https://placeimg.com/640/480/people);"></div> </div> </div> <div class="col-xs-4 col-sm-4"> <div class="image-box ratio-5-3"> <div class="image" style="background-image:url(https://placeimg.com/640/480/people);"></div> </div> </div> <div class="col-xs-5 col-sm-5"> <div class="image-box ratio-5-3"> <div class="image" style="background-image:url(https://placeimg.com/640/480/people);"></div> </div> </div> </div> </div>
.image-box { position: relative; overflow: hidden; } .image-box::before { content: ""; display: block; padding-top: 100%; /* initial ratio of 1:1*/ } .image-box .image { position: absolute; top: 0; left: 0; bottom: 0; right: 0; margin: auto; background-size: cover; background-position: center; } .image-box.ratio-1-1::before { padding-top: 100%; } .image-box.ratio-2-1::before { padding-top: 50%; } .image-box.ratio-1-2::before { padding-top: 200%; } .image-box.ratio-4-3:before { padding-top: 75%; } .image-box.ratio-5-3:before { padding-top: 60%; } .image-box.ratio-16-9:before { padding-top: 56.25%; }