# flex: 0 1 auto 是什么意思?

三个参数分别对应的是 flex-grow, flex-shrink 和 flex-basis,默认值为0 1 auto。

  1. flex-grow: 0; 增长比例,子项合计宽度小于容器宽度,需要根据每个子项设置的此属性比例对剩下的长度进行分配
  2. flex-shrink: 1; 回缩比例,子项合计宽度大于容器宽度,需要根据每个子项设置的此属性比例对多出的长度进行分配
  3. flex-basis: auto; 设置了宽度跟宽度走,没设置宽度跟内容实际宽度走

举例说明:

  1. flex-grow 剩余空间索取 默认值为0,不索取。eg:父元素400,子元素A为100px,B为200px.则剩余空间为100,此时A的flex-grow 为1,B为2,则A=100px+1001/3; B=200px+1002/3。
  2. flex-shrink 子元素总宽度大于复制元素如何缩小 父400px,A 200px B 300px,AB总宽度超出父元素100px,如果A不减少,则flex-shrink:0,B减少。
  3. flex-basis 该属性用来设置元素的宽度,当然width也可以用来设置元素的宽度,如果设置了width和flex-basis,那么flex-basis会覆盖width值。