【发布时间】:2017-10-10 00:32:55
【问题描述】:
显示问题的简化 plunkr: https://plnkr.co/edit/mHTHLEumQ04tInFVAz3z?p=preview
如果您调整右视口的大小,直到两个容器不再适合同一行,右视口将移动到新的一行。
但是,父 inline-flex 容器的宽度不会改变,将顶部的“header”元素扔掉 - “header”中的“button”应该与下面容器中的最后一项右对齐。
两个(或更多)项目具有固定宽度,但它们之间没有空间。这些是唯一具有固定宽度或高度的元素。
当项目换行到新行(不使用 js,纯 HTML/CSS)时,如何强制 flex 容器宽度适合/缩小?
.main-flex {
display: -webkit-inline-flex;
display: inline-flex;
-webkit-flex-direction: column;
flex-direction: column;
}
.flex-container {
flex-grow: 1;
display: -webkit-inline-flex;
display: inline-flex;
-webkit-flex-direction: row;
flex-direction: row;
flex-wrap: wrap;
}
<div style="margin-top: 100px;" class="main-flex">
<div>
<span>header</span>
<span style="float:right">button</span>
</div>
<div class="flex-container">
<div style="height: 400px; width:250px; border: 1px solid black;"></div>
<div style="height: 400px; width:250px; border: 1px solid black;"></div>
</div>
</div>
【问题讨论】:
-
您的要求非常令人困惑。但我的猜测是 html 从一开始就不合逻辑。如果您希望按钮位于最后一个框的右侧,则应将它们放在一起。
-
@MihaiT 如果您查看示例-如果它在同一行上,它仅与最后一个框对齐-如果最后一个框由于换行而移动到新行-“按钮"不应该随它移动。它是所有框的全局标题。