我正在使用Bootstrap 4,这是我想要实现的目标(一张价值一千个单词的图片):
这是我通过使用以下标记成功实现的目标:
<div class="col-lg-6">1</div>
<div class="col-lg-6">2</div>
<div class="col-lg-6">3</div> <!-- I want 3 to stick to the bottom of 1 -->
任何引导专家都可以帮助我解决这个问题吗?
答案 0 :(得分:1)
为了获得与所需布局相似的内容,必须使用嵌套的rows
和columns
,因此div
1和3将位于将使用的容器上在12列中,有6列是这样的(全屏显示):
.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-*
class,这可以帮助您(当然)以任意方式在Flex容器中排序元素,但是由于基本上是在您的第一个级别上,所以这将不起作用您只有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网格here的更多信息。 您还可以在 Flexbox (Bootstrap 4所基于的)here上阅读更多信息,以便您有更多的方式来操纵Bootstrap的组件