flex-direction
「flex-direction」属性可以用来设定伸缩容器的主轴的方向,这也决定了使用者代理配置伸缩项目的方向。
取值: row | row-reverse | column | column-reverse
初始: row
适用于: 伸缩容器
「row」
伸缩容器的主轴与当前书写模式的行内轴(文字布局的主要方向)同向。主轴起点与主轴终点方向分别等同于当前书写模式的始与结方向。
「row-reverse」
除了主轴起点与主轴终点方向交换以外同「row」。
「column」
伸缩容器的主轴与当前书写模式的块轴(块布局的主要方向)同向。主轴起点与主轴终点方向分别等同于当前书写模式的前与后方向。
「column-reverse」
除了主轴起点与主轴终点方向交换以外同「column」。
display:flex,flex-direction:row(default)
display:flex,flex-direction:row-reverse
display:flex,flex-direction:column
display:flex,flex-direction:column-reverse
flex-wrap
取值: nowrap | wrap | wrap-reverse
初始: nowrap
适用于: 伸缩容器
「flex-wrap」属性控制伸缩容器是单行还是多行,也决定了侧轴方向 ― 新的一行的堆放方向。
「nowrap」
伸缩容器为单行。侧轴起点方向等同于当前书写模式的起点或前/头在侧轴的那一边,而侧轴终点方向是侧轴起点的相反方向。
「wrap」
伸缩容器为多行。侧轴起点方向等同于当前书写模式的起点或前/头在侧轴的那一边,而侧轴终点方向是侧轴起点的相反方向。
「wrap-reverse」
除了侧轴起点与侧轴终点方向交换以外同「wrap」。
display:flex,flex-wrap:nowrap(default)
display:flex,flex-wrap:wrap
display:flex,flex-wrap:wrap-reverse
flex-flow
取值: <‘flex-direction’> || <‘flex-wrap’>。
「flex-flow」属性是同时设定「flex-direction」与「flex-wrap」属性的缩写,两个属性决定了伸缩容器的主轴与侧轴。
display:flex,flex-flow: column wrap;
display:flex,flex-flow: column wrap-reverse;
justify-content
取值: flex-start | flex-end | center | space-between | space-around
初始: flex-start
适用于: 伸缩容器
「justify-content」属性用于在主轴上对齐伸缩项目。
这一行为会在所有可伸缩长度及所有自动边距均被解释后进行。
当一行上的所有伸缩项目都不能伸缩或可伸缩但是已经达到其最大长度时,这一属性才会对多余的空间进行分配。
当项目溢出某一行时,这一属性也会在项目的对齐上施加一些控制。
display:flex,justify:flex-start
display:flex,justify:flex-end
display:flex,justify:center
display:flex,justify:space-between
display:flex,justify:space-around
侧轴对齐 ―「align-items」(对容器)
取值: flex-start | flex-end | center | baseline | stretch
初始: stretch
适用于: 伸缩容器
侧轴对齐 ―「align-self」(对项目)
取值: auto | flex-start | flex-end | center | baseline | stretch
初始: auto
适用于: flex items
伸缩项目可以在伸缩容器的当前行的侧轴上进行对齐,这类似于「justify-content」属性,但是是另一个方向。
「align-items」可以用来设置伸缩容器中包括匿名伸缩项目的所有项目的对齐方式。
「align-self」则用来在单独的伸缩项目上覆写默认的对齐方式。(对于匿名伸缩项目,「align-self」的值永远与其关联的伸缩容器的「align-items」的值相同。)。
若伸缩项目的任一个侧轴上的外边距为「auto」,则「align-self」没有效果。
如果「align-self」的值为「auto」,则其计算值为元素的父元素的「align-items」值,如果该元素没有父元素,则计算值为「stretch」。
display:flex,align-items:flex-start
display:flex,align-items:flex-end
display:flex,align-items:center
display:flex,align-items:baseline
display:flex,align-items:stretch
display:flex,align-items:stretch
堆栈伸缩行 ―「align-content」
取值: flex-start | flex-end | center | space-between | space-around | stretch
初始: stretch
适用于: 多行伸缩容器
当伸缩容器的侧轴还有多余空间时,「align-content」属性可以用来调准伸缩行在伸缩容器里的对齐方式,
这与调准伸缩项目在主轴上对齐方式的「justify-content」属性类似。
请注意本属性在只有一行的伸缩容器上没有效果
display:flex,align-content:flex-start,flex-wrap: wrap
display:flex,align-content:flex-end,flex-wrap: wrap
display:flex,align-content:center,flex-wrap: wrap
display:flex,align-content:space-between,flex-wrap: wrap
display:flex,align-content:space-around,flex-wrap: wrap
display:flex,align-content:stretch,flex-wrap: wrap
display:flex,align-content:stretch,flex-wrap: wrap
显示顺序 ―「order」属性
取值: integer
初始: 0
适用于: 伸缩项目,伸缩容器的绝对定位子元素
「order」属性透过将元素分到有序号的组以控制元素出现的顺序。
伸缩容器会从序号最小的组开始布局,在同一个组里的项目依在来源文件里的次序布局
请注意负数是可以的,越小,优先级越高
display:flex,flex-wrap: wrap
伸缩设置 ―「flex」属性
取值: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
初始: 「flex: 0 1 auto」。
适用于: 伸缩项目
「flex」属性可以用来指定可伸缩长度的部件:扩展比率、收缩比率,以及伸缩基准值。
当一个元素是伸缩项目时,「flex」属性将代替主轴长度属性决定元素的主轴长度(比如默认情况下代替 width)。
若元素不是伸缩项目,则「flex」属性没有效果。
伸缩比例 ―「flex-grow」属性
用来指定flex item 的扩展比率,也就是剩余空间是正值的时候,此伸缩项目相对于伸缩容器里其他伸缩项目能分配到空间比例。
默认值为「1」
收缩比例 ―「flex- shrink」属性
用来指定flex item 的收缩比率,也就是剩余空间是负值的时候此伸缩项目相对于伸缩容器里其他伸缩项目能收缩的空间比例。
若省略了,则它会被设为「1」。在收缩的时候收缩比率会以伸缩基准值加权。
display:flex,flex-wrap: nowrap
display:flex,flex-wrap: nowrap
display:flex,flex-wrap: nowrap
display:flex,flex-wrap: wrap
display:flex,flex-wrap: nowrap
伸缩基准值设置 ―「flex-basis」属性
取值: <'width'>
初始: auto
适用于: 伸缩项目
「flex-basis」属性可以用来设置伸缩基准值。负长度不合法。
在横向书写模式中,「flex-basis」的值 =「width」
若「flex-basis」的值是一个百分比,则此百分比由伸缩项目的包含块(也就是伸缩容器)解出.
同样的,除非「box-sizing」指定了别的行为,「flex-basis」决定内容盒的尺寸。
display:flex,flex-wrap: nowrap
「flex:0 auto」=「flex:initial」=「flex:0 1 auto」
这也是 flex 属性的初始值
效果:
根据width/height属性决定元素的尺寸。(如果项目的主轴长度属性的计算值为auto,则会根据其内容来决定元素尺寸。)
当剩余空间为正值时,伸缩项目无法伸缩,但当空间不足时,伸缩项目可收缩至其最小值。
网页作者可以用对齐相关的属性以及margin属性的auto值控制伸缩项目沿着主轴的对齐方式。
display:flex,flex-wrap: nowrap
display:flex,flex-wrap: nowrap
「flex:auto」=「flex:1 1 auto」
效果:
根据width/height属性决定元素的尺寸。(如果项目的主轴长度属性的计算值为auto,则会根据其内容来决定元素尺寸。)
当剩余空间为正值时,所有 flex:auto 的项目均分剩余空间
当剩余空间不足的时候,所有 flex_auto 的项目按相同比例收缩自己
display:flex,flex-wrap: nowrap
「flex:none」=「flex:0 0 auto」
效果:
根据width/height属性决定元素的尺寸。(如果项目的主轴长度属性的计算值为auto,则会根据其内容来决定元素尺寸。)
无论是否还有剩余空间,都不进行伸缩
display:flex,flex-wrap: nowrap
display:flex,flex-wrap: nowrap
display:flex,flex-wrap: wrap