JSFiddle - React, Tailwind, and code Playground
HTML
<div class="flexbin">
<a href="#">
<img src="https://armene.com/images/stories/com_form2content/p1/f37/_DSC7618.jpg" />
</a>
<a href="#">
<img src="https://armene.com/images/stories/com_form2content/p7/f196/A0149688.jpg" />
</a>
<a href="#">
<img src="https://armene.com/images/stories/com_form2content/p5/f178/A0148739-2.jpg" />
</a>
<a href="#">
<img src="https://armene.com/images/stories/com_form2content/p6/f185/_DSC2557.jpg" />
</a>
<a href="#">
<img src="https://armene.com/images/stories/com_form2content/p1/f53/_DSC9723.jpg" />
</a>
<a href="#">
<img src="https://armene.com/images/stories/com_form2content/p1/f47/_DSC1798.jpg" />
</a>
<a href="#">
<img src="https://armene.com/images/stories/com_form2content/p1/f175/A0149553.jpg" />
</a>
<a href="#">
<img src="https://armene.com/images/stories/com_form2content/p1/f173/_DSC9994.jpg" />
</a>
</div>
CSS
.flexbin {
display: flex;
overflow: hidden;
flex-wrap: wrap;
margin: -2.5px; }
.flexbin:after {
content: '';
flex-grow: 999999999;
min-width: 300px;
height: 0; }
.flexbin > * {
position: relative;
display: block;
height: 300px;
margin: 2.5px;
flex-grow: 1; }
.flexbin > * > img {
height: 300px;
object-fit: cover;
max-width: 100%;
min-width: 100%;
vertical-align: bottom; }
.flexbin.flexbin-margin {
margin: 2.5px; }
@media (max-width: 980px) {
.flexbin {
display: flex;
overflow: hidden;
flex-wrap: wrap;
margin: -2.5px; }
.flexbin:after {
content: '';
flex-grow: 999999999;
min-width: 150px;
height: 0; }
.flexbin > * {
position: relative;
display: block;
height: 150px;
margin: 2.5px;
flex-grow: 1; }
.flexbin > * > img {
height: 150px;
object-fit: cover;
max-width: 100%;
min-width: 100%;
vertical-align: bottom; }
.flexbin.flexbin-margin {
margin: 2.5px; } }
@media (max-width: 400px) {
.flexbin {
display: flex;
overflow: hidden;
flex-wrap: wrap;
margin: -2.5px; }
.flexbin:after {
content: '';
flex-grow: 999999999;
min-width: 100px;
height: 0; }
.flexbin > * {
position: relative;
display: block;
height: 100px;
margin: 2.5px;
flex-grow: 1; }
.flexbin > * > img {
height: 100px;
object-fit: cover;
max-width: 100%;
min-width: 100%;
vertical-align: bottom; }
.flexbin.flexbin-margin {
margin: 2.5px; } }