【发布时间】:2016-12-02 10:43:43
【问题描述】:
我无法让 flex 与我当前的布局一起工作。我试图让 1 到 3 之间的垂直空间消失。我意识到我可以通过将这两个包装在一个容器中来解决这个问题,但我不希望这样做,因为我将使用 flex 的 order 属性根据媒体查询在框 1 和框 3 之间移动框 2。我曾尝试在框 1 上使用align-self: flex-start,但这似乎并不能解决问题。有什么想法吗?
.flex-con {
display: flex;
flex-direction: row;
flex-wrap: wrap;
height: 300px;
}
.box {
width: 40%;
margin: 0 10px;
font-size: 20px;
text-align: center;
}
.one {
height: 40%;
border: 2px solid red;
}
.two {
height: 60%;
border: 2px solid blue;
}
.three {
height: 50%;
border: 2px solid green;
}
.four {
height: 50%;
border: 2px solid yellow;
}
<div class="flex-con">
<div class="box one">1</div>
<div class="box two">2</div>
<div class="box three">3</div>
<div class="box four">4</div>
</div>
【问题讨论】:
-
两行子级的总高度大于父级的总高度。至于我,不好。
-
你想要实现的是砌体效果,这不能单独使用 Flexbox 完成。 medium.com/@_jh3y/…
-
如果你只是想摆脱垂直空间设置
.one高度为60%,jsfiddle.net/Ldfrd8qc -
或者如果你可以在
.three类上使用relative定位:jsfiddle.net/Ldfrd8qc/1