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:1和flex:auto的行为表现:
元素尺寸可以弹性增大,也可以弹性变小,具有十足的弹性,但是
flex:1在尺寸不足时会优先最小化内容尺寸,flex:auto在尺寸不足时会优先最大化内容尺寸。
flex:1和flex:auto的区别
虽然都是充分分配容器的尺寸,但是flex:1的尺寸表现更为内敛(优先牺牲自己的尺寸),flex:auto的尺寸表现则更为霸道(优先扩展自己的尺寸)。