垂直居中
通过设置容器的align-item: center;
即可
多列同高
当你有多列区域,每列区域内容不定,但想要同一高度时,设置容器的align-items: stretch;
即可,通常align-items: normal;
和stretch
效果一样。没有设置高度的盒子会被拉伸到容器高度。
盒子grow
默认盒子的flex-grow: 0;
即当容器的内容宽度 > 所有盒子宽度时,盒子不会拉伸,通过设置盒子的flex-grow
即可按增长系数进行拉伸
盒子shrink
默认盒子的flex-shrink: 1;
即当容器的内容宽度 < 所有盒子宽度时,盒子的内容宽度会被压缩到最小尺寸
flex与overflow结合
当容器设置了高度,同时所有盒子的高度 > 容器高度时, 如果其中有盒子设置了overflow,那么再缩完所有盒子到最小高度后,会继续缩设置了overflow的盒子的内容高度。
basis
- 当basis为
auto
且盒子设置了width
时,width
即为basis
- 当basis为
auto
但盒子没有设置width
,basis
为max-content
- 当basis为0,意味着所有空间都可被分配。如果盒子grow系数相同,盒子会以同样的比例增长,均分后如果都大于
min-conntent
就表现为平分容器:如果均分如果有盒子的
min-content
大于宽度时,就会挤压其它盒子,表现为:
grow与basis
在增长时,按照正可用空间与grow系数加权
shrink与basis
收缩时,除了负可用空间和shrink系数外,还和盒子的basis有关,最终盒子不会小于min-content