Когда inside1
и inside2
находятся в другом родительском контейнере, это невозможно. Тем не менее, одно решение состоит в том, чтобы все три элемента были в одном родительском контейнере, а затем использовать CSS Grid для построения двухколоночного макета, а также переупорядочить на другом размере экрана.
Вот CodePen демо: https://codepen.io/samsonzhangthesalmon/pen/qBdgZdy
В отличие от @ Prathame sh Ответ Кошти, моя сохраняет высоту розовых и зеленых блоков, используя min-content
в сетке.
.container {
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-template-rows: min-content minmax(min-content, 1fr);
}
.biggest {
height: 500px;
width: 100%;
background-color: teal;
grid-row: 1/3;
}
.inside1 {
height: 30px;
width: 100%;
background: deeppink;
margin: 20px;
}
.inside2 {
height: 30px;
width: 100%;
background: forestgreen;
margin: 20px;
}
@media (max-width: 600px) {
/* example of mobile */
.container {
grid-template-columns: 1fr;
/* reset to one column. Better than doing this is to put the two-column line in a min-width: 600px query and go mobile-first, but for the sake of clarity I'll overwrite it here */
}
.biggest {
grid-row: 2/3;
}
}
<div class='container'>
<div class="biggest"></div>
<div class="inside1"></div>
<div class="inside2"></div>
</div>