【发布时间】:2019-07-01 23:13:21
【问题描述】:
我有 4 个 div 正在使用 flexbox 对齐。在桌面尺寸下,有 3 个等宽的列,第一个和最后一个 div 占据了容器的整个高度。第二个和第三个 div 垂直堆叠在中间,每个占高度的 50%。效果很好。
在移动尺寸下,我希望最后一个 div 位于顶部并拉伸容器的整个宽度。然后我希望第一个 div 在顶部 div 下方左对齐,并占据容器宽度和剩余高度的 50%。
我遇到的问题是我希望第二个和第三个 div 在顶部 div 的正下方对齐并占据剩余 50% 的宽度,但垂直堆叠,因此每个占据剩余高度的 50%。
我已尝试更改媒体查询中的flex-direction 以及我能想到的所有其他内容,但它不起作用。
* {
margin: 0;
padding: 0;
}
.box-wrapper {
display: flex;
flex-direction: column;
flex-wrap: wrap;
height: 70vh;
align-items
}
.boxa {
background: red;
flex: 0 0 100%;
width: 33%;
}
.boxb {
background: orange;
}
.boxc {
background: lightgreen;
}
.boxb,
.boxc {
flex: 0 0 50%;
width: 33%;
}
.boxd {
background: grey;
flex: 0 0 100%;
width: 33%;
}
@media (max-width: 700px) {
.boxa {
order: 2;
width: 50%;
flex: 0 0 75%;
}
.boxb {
order: 3;
width: 50%;
flex: 0 0 37.5%;
}
.boxc {
order: 4;
width: 50%;
flex: 0 0 37.5%;
}
.boxd {
order: 1;
flex: 0 0 25%;
width: 100%;
}
}
<div class="box-wrapper">
<div class="boxa"></div>
<div class="boxb"></div>
<div class="boxc"></div>
<div class="boxd"></div>
</div>
【问题讨论】: