### 四、項目的屬性
以下6個屬性設置在項目上。
* `order`
* `flex-grow`
* `flex-shrink`
* `flex-basis`
* `flex`
* `align-self`
### 4.1 order屬性
`order`屬性定義項目的排列順序。數值越小,排列越靠前,默認為0。
~~~
.item {
order: <integer>;
}
~~~

### 4.2 flex-grow屬性
`flex-grow`屬性定義項目的放大比例,默認為`0`,即如果存在剩余空間,也不放大。
~~~
.item {
flex-grow: <number>; /* default 0 */
}
~~~

如果所有項目的`flex-grow`屬性都為1,則它們將等分剩余空間(如果有的話)。如果一個項目的`flex-grow`屬性為2,其他項目都為1,則前者占據的剩余空間將比其他項多一倍。
### 4.3 flex-shrink屬性
`flex-shrink`屬性定義了項目的縮小比例,默認為1,即如果空間不足,該項目將縮小。
~~~
.item {
flex-shrink: <number>; /* default 1 */
}
~~~

如果所有項目的`flex-shrink`屬性都為1,當空間不足時,都將等比例縮小。如果一個項目的`flex-shrink`屬性為0,其他項目都為1,則空間不足時,前者不縮小。
負值對該屬性無效。
### 4.4 flex-basis屬性
`flex-basis`屬性定義了在分配多余空間之前,項目占據的主軸空間(main size)。瀏覽器根據這個屬性,計算主軸是否有多余空間。它的默認值為`auto`,即項目的本來大小。
~~~
.item {
flex-basis: <length> | auto; /* default auto */
}
~~~
它可以設為跟`width`或`height`屬性一樣的值(比如350px),則項目將占據固定空間。
### 4.5 flex屬性
`flex`屬性是`flex-grow`,?`flex-shrink`?和?`flex-basis`的簡寫,默認值為`0 1 auto`。后兩個屬性可選。
~~~
.item {
flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
}
~~~
該屬性有兩個快捷值:`auto`?(`1 1 auto`) 和 none (`0 0 auto`)。
建議優先使用這個屬性,而不是單獨寫三個分離的屬性,因為瀏覽器會推算相關值。
### 4.6 align-self屬性
`align-self`屬性允許單個項目有與其他項目不一樣的對齊方式,可覆蓋`align-items`屬性。默認值為`auto`,表示繼承父元素的`align-items`屬性,如果沒有父元素,則等同于`stretch`。
~~~
.item {
align-self: auto | flex-start | flex-end | center | baseline | stretch;
}
~~~

該屬性可能取6個值,除了auto,其他都與align-items屬性完全一致。