JSFiddle - React, Tailwind, and code Playground
HTML
<div class="container">
<div class="child">
<div class="picture"></div>
<div class="text"></div>
</div>
<div class="child">
<div class="picture"></div>
<div class="text"></div>
</div>
<div class="child">
<div class="picture"></div>
<div class="text"></div>
</div>
<div class="child">
<div class="picture"></div>
<div class="text"></div>
</div>
<div class="child">
<div class="picture"></div>
<div class="text"></div>
</div>
<div class="child">
<div class="picture"></div>
<div class="text"></div>
</div>
</div>
CSS
html,
body {
height: 100%;
}
.container {
width: 100%;
border: solid;
box-sizing: border-box;
display: flex;
flex-wrap: wrap;
list-style: none;
padding: 0;
margin: 0;
align-content: flex-start;
overflow: auto;
}
.child {
border: solid;
box-sizing: border-box;
background: pink;
text-align: center;
margin-top: 10px;
}
.picture {
border: solid blue;
box-sizing: border-box;
padding-bottom: 40%;
}
.text {
border: solid green;
box-sizing: border-box;
padding-bottom: 25%;
}
@media only screen and (max-width: 499px) {
.child {
flex: 0 1 99%;
margin-left: 0.5%;
margin-right: 0.5%;
}
}
@media only screen and (min-width: 500px) {
.child {
flex: 0 1 49%;
margin-left: 0.5%;
margin-right: 0.5%;
}
}
@media only screen and (min-width: 700px) {
.child {
flex: 0 1 32.333%;
margin-left: 0.5%;
margin-right: 0.5%;
}
}
@media only screen and (min-width: 900px) {
.child {
flex: 0 1 24%;
margin-left: 0.5%;
margin-right: 0.5%;
}
}
@media only screen and (min-width: 1100px) {
.child {
flex: 0 1 19%;
margin-left: 0.5%;
margin-right: 0.5%;
}
}