【发布时间】:2016-07-21 07:59:09
【问题描述】:
请看我非常简单的 flex 布局示例:
有
- 容器与
- 打开弹性框(显示:弹性)
- 换行(flex-wrap: 换行)
- 其中的一些项目有
- flex-grow 设置为 1 = 所有项目都将同等缩放
- flex-shrink 为 0 = 任何项目都不会按比例缩小
- flex-basis = 所有项目的基本宽度相同
尽管有所有规则集,但最后一行的项目有不同的宽度?当 flex-grow 说所有项目都将平等缩放时,这怎么可能?
引用http://www.w3schools.com/cssref/css3_pr_flex-grow.asp:
flex-grow 属性指定该项目相对于同一容器内的其他灵活项目将增长多少。
这很酷,但我在最后一排的物品比其他物品增长得更多。有什么想法吗?
flex {
display: flex;
flex-wrap: wrap;
}
item {
flex: 1 0 4rem;
height: 4rem;
margin: 0.5rem;
border: 1px solid lightblue;
}
<flex>
<item></item>
<item></item>
<item></item>
<item></item>
<item></item>
<item></item>
<item></item>
<item></item>
</flex>
【问题讨论】:
-
把
1 0 4rem改成1 0 auto怎么样? -
嗯,我需要有相同宽度的项目。如果我将其设置为自动,则内部内容会有所不同。
-
0 0 4rem呢?这个问题有点混乱。 -
更接近,几乎在那里,项目是平等的。但我想填补右边的空白。 i.imgur.com/MUJlU6i.png
-
这在 flexbox 中是不可能的……这不是 line box 模型的工作方式。
标签: html css flexbox flex-grow