Flex模型
元素表現(xiàn)為 flex 框時纵苛,它們沿著兩個軸來布局:
主軸(main axis)是沿著 flex 元素放置的方向延伸的軸(比如頁面上的橫向的行顶瞒、縱向的列)弥虐。該軸的開始和結(jié)束被稱為 main start 和 main end蹋岩。
交叉軸(cross axis)是垂直于 flex 元素放置方向的軸晕换。該軸的開始和結(jié)束被稱為 cross start 和 cross end。
設(shè)置了 display: flex 的父元素被稱之為 flex 容器(flex container)磅摹。.container
在 flex 容器中的彈性盒子元素被稱之為 flex 項(flex item)滋迈。.item
一、flex container屬性
display
給flex容器設(shè)置display屬性
.container{
display:flex | inline-flex
}
flex-direction設(shè)置主軸的方位和方向户誓。
.container {
flex-direction: row(default) | row-reverse | column | column-reverse;
}
flex-wrap設(shè)置換行
.container {
flex-wrap: nowrap(default) | wrap | wrap-reverse;
}
flex-flow集合屬性饼灿,同時定義flex-direction和flex-wrap。
.container {
flex-flow: row-reverse wrap-reverse;
}
justify-content設(shè)置行內(nèi)的項目如何水平對齊
.container {
justify-content: flex-start(default) | flex-end | center | space-between |
space-around | space-evenly;
}
align-items設(shè)置行內(nèi)的項目如何垂直對齊帝美。
.container {
align-items: stretch(default) | flex-start | flex-end | center | baseline;
}
align-content如果容器的交叉軸方向有富余空間碍彭,設(shè)置每行應(yīng)該如何垂直對齊。
.container {
align-content: stretch(default) | flex-start | flex-end | center | space-between | space-around | space-evenly;
}
二悼潭、flex item屬性
order設(shè)置彈性項目在布局時的順序硕旗。
.item {
order: <integer>;
}
默認(rèn)值是0。order 值大的 flex 項比 order 值小的在顯示順序中更靠后女责。
flex-grow 設(shè)置flex項怎么瓜分行內(nèi)的富余空間漆枚。定義flex項(flex item)的拉伸因子。
.item {
flex-grow: <number>;
}
默認(rèn)值是0抵知。按照總份數(shù)瓜分富余空間墙基。
flex-shrink 設(shè)置flex項怎么承擔(dān)行內(nèi)的負(fù)債空間。定義flex項(flex item)的收縮規(guī)則刷喜。
.item {
flex-shrink: <number>;
}
默認(rèn)值是1残制。按照總份數(shù)承擔(dān)行內(nèi)的負(fù)債空間。
flex-basis 設(shè)置了 flex 元素在主軸方向上的初始大小掖疮。它是width屬性的替代品初茶,優(yōu)先級比width高。
.item {
flex-basis: <'width'>;
}
默認(rèn)值是auto浊闪。依賴flex項目的content
flex恼布。一個集合屬性,可以同時設(shè)置flex-grow搁宾、flex-shrink和flex-basis折汞。
.item {
flex: <'flex-grow'> | <'flex-grow'> <'flex-shrink'> <'flex-basis'>;
}
align-self。設(shè)置彈性項目自身在行內(nèi)的垂直對齊方式盖腿。
.item {
align-self: auto(default) | stretch | flex-start | flex-end | center | baseline;
}
默認(rèn)值是auto爽待。