高级前端
css
【Q695】Flex 布局中的 flex-basis 与 width 有何区别

Flex 布局中的 flex-basis 与 width 有何区别

Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 716 (opens in a new tab)

Author 回答者: shfshanyue (opens in a new tab)

  1. flex-directioncolumn 时,主轴为纵轴,此时 flex-basisheight 对应
  2. flex-basis 的值为理想情况,而在实际情况中可能被压缩

Author 回答者: Neisun (opens in a new tab)

flex-basis用于在flex布局时候给定项目的一个初始值, 默认情况下是auto,也就是说根据容器宽度去自动计算,width是给定项目固定宽度。

  1. 当flex布局的主轴是水平方向即flex-direction: row;那么flex-basis设定的就是初始宽度,如果同时存在width,width会覆盖flex-basis属性
  2. 当flex布局的主轴是垂直方向即flex-direction: column;那么flex-basis设定的就是初始高度,如果同时存在height,width会覆盖flex-basis属性; demo示例 (opens in a new tab)

Author 回答者: ainightf (opens in a new tab)

flex-basis用于在flex布局时候给定项目的一个初始值, 默认情况下是auto,也就是说根据容器宽度去自动计算,width是给定项目固定宽度。

  1. 当flex布局的主轴是水平方向即flex-direction: row;那么flex-basis设定的就是初始宽度,如果同时存在width,width会覆盖flex-basis属性
  2. 当flex布局的主轴是垂直方向即flex-direction: column;那么flex-basis设定的就是初始高度,如果同时存在height,width会覆盖flex-basis属性; demo示例 (opens in a new tab)

我觉得你说错了,flex-basis设置的宽高的优先级是大于传统的width和height,希望你可以再去看看再来回答。