主轴与侧轴

默认的主轴与侧轴

image.png

主轴对齐方式

image.png
image.png
image.png

侧轴对齐方式

侧轴单行对齐方式

image.png

侧轴多行对齐方式

image.png

每个子元素的对齐方式

没有这只子元素对齐方式
image.png
设置单个元素对齐方式
image.png
image.png
设置多个元素对齐方式
image.png

每个子元素的摆放顺序

order设置每个子元素的摆放顺序,默认值是0, 按照从小到大的顺序摆放
image.png

示例

默认摆放顺序
image.png
设置单个元素摆放顺序
image.png
设置多个元素摆放顺序
image.png

修改主轴方向flex-direction

控制元素的流向,也就是控制flex的主轴

流向示意图

image.png

属性值的示意图

image.png
image.png
image.pngimage.png

换行 flex-wrap

是否换行

示意图

image.png

属性值示例

image.png
image.png

弹性伸缩 Flexibility

设置元素的宽度,有三个属性值组成,为其元素提供伸缩能力
image.png

flex-grow

当容器空间有剩余空间, 他会让元素伸展,伸展占据的是容器的剩余空间,剩余空间 =容器宽度 - 所有子元素的宽度,剩余空间是按照比例分配的

默认值为0的示例图

abc元素旁的空白就是容器的剩余空间,flex-grow分配的就是这个剩余空间
image.png

设置a的伸展值设置为1

a将占剩余空间的比例是1
image.png

设置ab的伸展值设置为1

a与b占剩余空间的比例都是1 故一人一半
image.png

让a的伸展为2b的伸展为1

a占剩余空间的比例为2 b占剩余空间比例为1 那就是将剩余空间分成三份 a占两份,b占一份
image.png

flex-shrink

当元素们占据的空间超过容器的空间会让元素进行收缩

默认值为1 默认会进行收缩

a,b,c元素的宽度都是父级容器宽度的70% 会溢出, flex-shrink 会进行收缩
image.png

a 不收缩 让b,c收缩

image.png

a,b不收缩,让c收缩

image.png

flex-basis

设置在没有伸缩时的宽度值

没有设置值

image.png

设置width与flex-basis

会使用flex-basis的值
image.png

只设置width

image.png

width与flex-basis都没设置 会按照内容的宽度

image.png

简写成 flex

image.png