Чтобы получить что-то похожее на макет, который вы хотите, вам нужно будет использовать вложенные rows
и columns
, поэтому div
1 & 3 будет на контейнере, который будет использовать 6 столбцов из 12вот так (см. на весь экран):
.col-lg-6 {
border: 1px solid red;
min-height: 200px;
}
.col-lg-12 {
border: 1px solid blue;
min-height: 200px;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" rel="stylesheet"/>
<div class="row">
<div class="col-lg-6">1</div>
<div class="col-lg-6">
<div class="row">
<div class="col-lg-12">2</div>
<div class="col-lg-12">3</div>
</div>
</div>
</div>
С помощью Bootstrap вы можете использовать order-*
класс , который поможет вам (конечно) упорядочить элементы вflex-container в зависимости от того, что вы хотите, однако это не будет работать, поскольку в основном на вашем первом уровне у вас есть только 2 элемента.
Другой вариант, который у вас есть, который на самом деле очень хорошо работает для такого рода двумерныхмакеты, это CSS Grid, который является родным для CSS и может помочь вам упорядочить ваши элементы любым способом и позволит вам получить нужный макет:
.grid {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-auto-rows: minmax(150px, auto);
grid-template-areas:
"g2 g1"
"g2 g3"
}
.grid-vertical {
grid-template-columns: 30%;
grid-template-areas:
"g1"
"g2"
"g2"
"g3"
}
.grid-item {
border: 1px solid #000;
}
.g1 {
grid-area: g1;
}
.g2 {
grid-area: g2
}
.g3 {
grid-area: g3
}
<div class="grid">
<div class="grid-item g1">1</div>
<div class="grid-item g2">2</div>
<div class="grid-item g3">3</div>
</div>
<div class="grid grid-vertical">
<div class="grid-item g1">1</div>
<div class="grid-item g2">2</div>
<div class="grid-item g3">3</div>
</div>
Более подробную информацию о CSS Grid можно получить здесь .Вы также можете прочитать больше о Flexbox (на котором основан Bootstrap 4) здесь , так что у вас есть больше способов манипулировать компонентами Bootstrap