首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >flex-grow和width有什么不同?

flex-grow和width有什么不同?
EN

Stack Overflow用户
提问于 2016-01-12 09:06:58
回答 1查看 12K关注 0票数 15

我最近开始使用flexbox,经常出现需要在元素之间的主轴上分配空间的情况。

我经常在widthflex-grow之间犹豫不决。例如,如果我想让一个项目测量2个度量值,而另一个度量值加起来为100%,我有两个选择。我可以设置width: 66.6%width: 33.3%,也可以设置flex-grow: 2flex-grow: 1

有时,如果我想让一个元素扩展其余的空间,我可以使用width: 100%flex-grow: 1

我该如何选择?使用width和flex-grow有什么区别/注意事项?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-12 09:29:47

widthflex-grow是两个完全不同的CSS属性。

width属性用于定义元素的宽度。

flex-grow属性用于分配flex容器中的空闲空间。此属性不会像width属性那样将特定长度应用于元素。它只是允许flex项目消耗任何可用的空间。

有时,如果我想让一个元素增长其余的空间,我可以使用width: 100%flex-grow: 1。我该如何选择?

是的,如果行中只有一个元素,则width: 100%flex-grow: 1可能具有相同的效果(取决于paddingborderbox-sizing设置)。

但是,如果有两个元素,并且您希望第二个元素占用剩余空间,该怎么办?如果容器中有同级,则width: 100%会导致溢出。我猜你可以这样做:

代码语言:javascript
复制
width: calc(100% - width of sibling);

但是如果同级的宽度是动态的或未知的呢?calc不再是一个选项。

快速而简单的解决方案是flex-grow: 1

widthflex-grow是苹果对橙子,而widthflex-basis是苹果对苹果。

flex-basis属性设置flex项的初始主大小,类似于width

有关flex-basisflex-grow之间的区别,请参阅:

票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34733955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档