JSFiddle - React, Tailwind, and code Playground
HTML
<div class="grid">
<div class="grid__item a">A</div>
<div class="grid__item b">B</div>
<div class="grid__item c">C</div>
<div class="grid__item d">D</div>
<div class="grid__item e">E</div>
</div>
CSS
.grid {
display: grid;
}
/* just styles for demo */
.grid__item {
font-size: 3em;
padding: 20px;
background-color: orange;
color: white;
margin: 10px;
/* using flexbox for text centering */
display: flex;
align-items: center;
justify-content: center;
}
/* medium screen */
@media screen and (min-width: 700px) and (max-width: 999px) {
.grid {
display: -ms-grid;
-ms-grid-columns: 1fr 1fr;
}
.a {
-ms-grid-column: 1;
-ms-grid-column-span: 2;
grid-column: 1 / span 2;
}
.b {
-ms-grid-row: 2;
}
.c {
-ms-grid-row: 2;
-ms-grid-column: 2;
}
.d {
-ms-grid-row: 3;
}
.e {
-ms-grid-row: 3;
-ms-grid-column: 2;
}
}
/* wide screen */
@media screen and (min-width: 1000px) {
.grid {
display: -ms-grid;
-ms-grid-columns: 1fr 1fr 1fr;
grid-template-columns: 1fr 1fr 1fr;
}
.a {
-ms-grid-column: 1;
-ms-grid-column-span: 2;
grid-column: 1 / span 2;
}
.b {
-ms-grid-column: 3;
}
.c {
-ms-grid-row: 2;
}
.d {
-ms-grid-row: 3;
grid-row: 3;
}
.e {
-ms-grid-row: 2;
-ms-grid-row-span: 2;
grid-row: 2 / span 2;
-ms-grid-column: 2;
-ms-grid-column-span: 2;
grid-column: 2 / span 2;
}
}