我正在尝试实现标记为“HALF”的框仅占宽度的 50%(也就是它们平均共享第一行)的效果。
基本要求是它们保留在一个容器中。这可以使用 flexbox 实现吗?
我试过玩弄 flex-grow
, flex-shrink
和 flex-basis
但恐怕我无法让它工作或理解如何让它不起作用考虑到单个容器的要求,甚至有可能。
考虑这个小提琴:http: //jsfiddle.net/GyXxT/270/
div {
border: 1px solid;
}
.container {
width: 400px;
display: flex;
flex-direction: column;
}
.child {
height: 200px;
}
.child.half {
flex: 1 1 10em;
color: green;
}
.child:not(.half) {
flex-shrink: 2;
flex-basis: 50%;
color: purple;
}
<div class="container">
<div class="child half">
HALF
</div>
<div class="child half">
HALF
</div>
<div class="child">
FULL
</div>
<div class="child">
FULL
</div>
<div class="child">
FULL
</div>
<div class="child">
FULL
</div>
</div>
原文由 parliament 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以尝试使用
flex-wrap: wrap
包装 flexbox,而不是flex-direction: column
;你可以设置:flex-basis: 50%
半宽divflex-basis: 100%
全宽div看到我已经投入
box-sizing: border-box
来调整使用 flex-basis 时的宽度。请参阅下面的演示: