flexbox项目上的宽度被忽略


76

http://jsfiddle.net/XW9Se/

我已经设置width: 200px;在左侧,<div>但是如果使用浏览器检查器工具进行查看,则实际宽度似乎是随机的或某种程度。它根据窗口大小不断变化。

为什么宽度不生效?

编辑:如果我删除width: 100%宽度保持固定。但是我需要这样,以便#maindiv占用剩余的宽度:(是否有任何方法可以使侧边栏@固定宽度而另一个<div>填充容器的其余宽度?width: auto;#main上不起作用..


2
难道不是在窗口调整大小时更改flexbox的整个想法吗?
gpgekko 2014年

2
是的,但我只希望1个挠性柱来更改宽度:P
Alex

1
尝试添加flex-flow: wrap;到容器中
user3338098

1
供参考:flex-shrink默认为1
Hayden Thring

Answers:



172

Adrift的答案很完美;但是改变,使其更加柔性

#left{
    flex-basis: 200px;
    flex-grow: 0;
    flex-shrink: 0;
}

并完全删除width属性。

可以灵活地说元素将具有200px的不变宽度


42
速记:flex: 0 0 200px;
Dan

20
只需添加 flex-shrink: 0属性,css宽度将受到尊重。
Ashish Rawat

结合使用order: 2(将其切换到右侧)可以完美地制作侧面板。谢谢!
罗伯特·莫利纳

1
只是想补充一点,我只需要flex-shrink: 0解决我的个人问题(flex: auto只有一个地方不能解决)
Jawad

18

我处理这种情况的首选方式是添加:

flex-shrink: 0;

这样,您可以继续width在Flex容器中使用它,并且已为它提供了有关希望此Flex项的行为的特定信息。

根据要求,另一种选择是使用min-width,在使用flex时要注意这一点。


7

#leftDIV一个min-width200px,应该做的工作。




By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.