flex:0 flex:1 flex:none flex:auto应该在什么场景下使用?

124 阅读1分钟

image.png

1. flex:0和flex:none的区别和各自适用场景

flex:0等同于设置flex: 0 1 0%flex:none等同于设置flex: 0 0 auto

  • flex:0 1 0%表示flex-grow是0,flex-shrink是1,因此元素尺寸会收缩但不会扩展,在加上flex-basis:0%表示建议支持是0,因此,设置flex:0的元素的最终尺寸表现为最小内容宽度;
  • flex:0 0 auto表示元素尺寸不会收缩也不会扩展,再加上flex-basis:auto表示固定尺寸由内容决定,由于元素不具有弹性,因此,元素内的内容不会换行,最终尺寸通常表现为最大内容宽度。

2. flex:1和flex:auto的区别和各自适用场景

flex:1等同于设置flex: 1 1 0%flex:auto等同于设置flex: 1 1 auto。 结合flex属性值的描述,我们可以得出flex:1flex:auto的行为表现:

元素尺寸可以弹性增大,也可以弹性变小,具有十足的弹性,但是flex:1在尺寸不足时会优先最小化内容尺寸,flex:auto在尺寸不足时会优先最大化内容尺寸。

flex:1flex:auto的区别

虽然都是充分分配容器的尺寸,但是flex:1的尺寸表现更为内敛(优先牺牲自己的尺寸),flex:auto的尺寸表现则更为霸道(优先扩展自己的尺寸)。

借鉴:www.zhangxinxu.com/wordpress/2…