我需要.child-1-2
增长到它的文本,但文本溢出。当我将flex-basis
的{{1}}从.child-1-1
更改为50px
时,它似乎有效。为什么会这样?
auto

.parent-1 {
display: flex;
}
.child-1 {
display: flex;
flex: 0 0 auto;
background: #4c72af;
}
.child-1-1 {
display: flex;
flex: 0 0 50px;
}
.child-1-2 {
display: flex;
flex: 1 0 auto;
}
.child-2 {
display: flex;
flex: 1 0 auto;
background: #f7ed7e;
}

答案 0 :(得分:1)
为了理解所描述行为发生的原因,我们应该知道flex-basis
和flex-grow
的实际工作方式以及如何计算弹性项目的宽度。
来自flex-grow is weird. Or is it?
如果我们应用display:flex;到父元素,不要改变 其他任何东西,子元素将水平堆叠,没有 有什么关系。如果没有足够的空间,它们的尺寸会缩小。如果 另一方面,有足够的空间,他们不会成长, 因为Flexbox希望我们定义他们应该增长多少。所以 而不是告诉浏览器一个元素应该有多宽, flex-grow决定剩余空间如何分配 弹性项目以及每个项目的份额有多大。
弹性项目的宽度按以下顺序确定:
来自The Difference Between Width and Flex Basis
如果没有指定flex-basis,那么flex-basis将回退到 item的宽度属性。
如果未指定宽度,则flex-basis将回退到 计算项目内容的宽度。