您的第二张图片显示了对flex如何工作的误解。flex伸展以填充容器。因此,第二个图像是不可能的。
第二个图像中的第一行看起来像一个浮动布局。要在flex中实现相同的效果,您需要添加一个额外的空元素,该元素将填充空白,但没有可见的内容。
<div class="flex-container">
<div style="flex-grow: 1">
<div class="flex-container">
<div style="flex-grow: 0; flex-shrink: 0;">Some label</div>
<div style="flex-grow: 0; flex-shrink: 0">An Input</div>
<!-- Adding a "spacer" solves the issue -->
<div style="flex-grow: 1;"></div>
<div style="flex-grow: 0; flex-shrink: 0; flex-basis: 120;">Some label</div>
<div style="flex-grow: 0; flex-shrink: 0">An Input</div>
<div style="flex-grow: 0; flex-shrink: 0; flex-basis: 120;">Some label</div>
<div style="flex-grow: 0; flex-shrink: 0">An Input</div>
</div>
<div class="flex-container">
<div style="flex-grow: 0; flex-shrink: 0">Some label</div>
<div style="flex-grow: 1;">An Input</div>
<div style="flex-grow: 0; flex-shrink: 0">Btn</div>
</div>
</div>
<div style="flex-grow: 0; flex-shrink: 0">Big Btn</div>
</div>