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%;
  }
}