Да, это вполне возможно при использовании медиазапроса и потока столбцов.
.container {
display: grid;
grid-template-columns: 30% 70%;
grid-auto-flow: column;
}
.item {
min-height: 50px;
border: solid 1px #333;
grid-column: 1;
}
.item[class*="item-content-"] {
grid-column: 2;
background: lightblue;
}
@media screen and (max-width:700px) {
.container {
grid-template-columns: 1fr;
}
.item[class*="item-content-"] {
grid-column: 1;
}
.item-2 {
grid-row-start: 6;
}
.item-3 {
grid-row-start: 7;
}
.item-4 {
grid-row-start: 8;
}
}
<div class="container">
<div class="item item-1">item-1</div>
<div class="item item-2">item-2</div>
<div class="item item-3">item-3</div>
<div class="item item-4">item-4</div>
<div class="item item-content-1">item-content-1</div>
<div class="item item-content-2">item-content-2</div>
<div class="item item-content-3">item-content-3</div>
<div class="item item-content-4">item-content-4</div>
</div>
За обновление (при условии, что существует только один .item-content
div
.container {
display: grid;
grid-template-columns: 30% 70%;
grid-auto-flow: column;
}
.item {
min-height: 50px;
border: solid 1px #333;
grid-column: 1;
}
.item-content-1 {
grid-column: 2;
grid-row: 1 / span 4;
background: lightblue;
}
@media screen and (max-width:700px) {
.container {
grid-template-columns: 1fr;
}
.item-content-1 {
grid-column: 1;
grid-row: 2;
}
}
<div class="container">
<div class="item item-1">item-1</div>
<div class="item item-2">item-2</div>
<div class="item item-3">item-3</div>
<div class="item item-4">item-4</div>
<div class="item item-content-1">item-content-1</div>
</div>