CSS3彈性盒子

2021-09-26 15:38:21 字數 3147 閱讀 3157

css3彈性盒子

彈性盒子是 css3 的一種新的布局模式,是一種當頁面需要適應不同的螢幕大小以及裝置型別時確保元素擁有恰當的行為的布局方式。

彈性盒子由彈性容器(flex container)和彈性子元素(flex item)組成。

彈性容器通過設定 display 屬性的值為 flex 或 inline-flex將其定義為彈性容器。

彈性容器內包含了乙個或多個彈性子元素。

彈性容器 display: flex | inline-flex

flex-direction 順序指定了彈性子元素在父容器中的位置。flex-direction: row | row-reverse | column | column-reverse

row:橫向從左到右排列(左對齊),預設的排列方式。

row-reverse:反轉橫向排列(右對齊,從後往前排,最後一項排在最前面。

column:縱向排列。

column-reverse:反轉縱向排列,從後往前排,最後一項排在最上面。

內容對齊(justify-content)屬性應用在彈性容器上,把彈性項沿著彈性容器的主軸線(main axis)對齊。justify-content: flex-start | flex-end | center | space-between | space-around

flex-start:彈性專案向行頭緊挨著填充。這個是預設值。第乙個彈性項的main-start外邊距邊線被放置在該行的main-start邊線,而後續彈性項依次平齊擺放。

flex-end:彈性專案向行尾緊挨著填充。第乙個彈性項的main-end外邊距邊線被放置在該行的main-end邊線,而後續彈性項依次平齊擺放。

center:彈性專案居中緊挨著填充。(如果剩餘的自由空間是負的,則彈性專案將在兩個方向上同時溢位)。

space-between:彈性專案平均分布在該行上。如果剩餘空間為負或者只有乙個彈性項,則該值等同於flex-start。否則,第1個彈性項的外邊距和行的main-start邊線對齊,而最後1個彈性項的外邊距和行的main-end邊線對齊,然後剩餘的彈性項分布在該行上,相鄰專案的間隔相等。

space-around:彈性專案平均分布在該行上,兩邊留有一半的間隔空間。如果剩餘空間為負或者只有乙個彈性項,則該值等同於center。否則,彈性專案沿該行分布,且彼此間隔相等(比如是20px),同時首尾兩邊和彈性容器之間留有一半的間隔(1/2*20px=10px)。

align-items 設定或檢索彈性盒子元素在側軸(縱軸)方向上的對齊方式。align-items: flex-start | flex-end | center | baseline | stretch

flex-start:彈性盒子元素的側軸(縱軸)起始位置的邊界緊靠住該行的側軸起始邊界。

flex-end:彈性盒子元素的側軸(縱軸)起始位置的邊界緊靠住該行的側軸結束邊界。

center:彈性盒子元素在該行的側軸(縱軸)上居中放置。(如果該行的尺寸小於彈性盒子元素的尺寸,則會向兩個方向溢位相同的長度)。

baseline:如彈性盒子元素的行內軸與側軸為同一條,則該值與』flex-start』等效。其它情況下,該值將參與基線對齊。

stretch:如果指定側軸大小的屬性值為』auto』,則其值會使專案的邊距盒的尺寸盡可能接近所在行的尺寸,但同時會遵照』min/max-width/height』屬性的限制。

flex-wrap 屬性用於指定彈性盒子的子元素換行方式。flex-flow: nowrap | wrap | wrap-reverse

nowrap - 預設, 彈性容器為單行。該情況下彈性子項可能會溢位容器。

wrap - 彈性容器為多行。該情況下彈性子項溢位的部分會被放置到新行,子項內部會發生斷行

wrap-reverse -反轉 wrap 排列。

align-content 屬性用於修改 flex-wrap 屬性的行為。類似於 align-items, 但它不是設定彈性子元素的對齊,而是設定各個行的對齊。

align-content: flex-start | flex-end | center | space-between | space-around | stretch

stretch - 預設。各行將會伸展以占用剩餘的空間。

flex-start - 各行向彈性盒容器的起始位置堆疊。

flex-end - 各行向彈性盒容器的結束位置堆疊。

center -各行向彈性盒容器的中間位置堆疊。

space-between -各行在彈性盒容器中平均分布。

space-around - 各行在彈性盒容器中平均分布,兩端保留子元素與子元素之間間距大小的一半。

完美的居中

使用彈性盒子,設定 margin: auto; 可以使得彈性子元素在兩上軸方向上完全居中。

align-self屬性用於設定彈性元素自身在側軸(縱軸)方向上的對齊方式。

auto:如果』align-self』的值為』auto』,則其計算值為元素的父元素的』align-items』值,如果其沒有父元素,則計算值為』stretch』。

flex-start:彈性盒子元素的側軸(縱軸)起始位置的邊界緊靠住該行的側軸起始邊界。

flex-end:彈性盒子元素的側軸(縱軸)起始位置的邊界緊靠住該行的側軸結束邊界。

center:彈性盒子元素在該行的側軸(縱軸)上居中放置。(如果該行的尺寸小於彈性盒子元素的尺寸,則會向兩個方向溢位相同的長度)。

baseline:如彈性盒子元素的行內軸與側軸為同一條,則該值與』flex-start』等效。其它情況下,該值將參與基線對齊。

stretch:如果指定側軸大小的屬性值為』auto』,則其值會使專案的邊距盒的尺寸盡可能接近所在行的尺寸,但同時會遵照』min/max-width/height』屬性的限制。

flex 屬性用於指定彈性子元素如何分配空間。flex: auto | initial | none | inherit | [ flex-grow ] || [ flex-shrink ] || [ flex-basis ]

auto: 計算值為 1 1 auto

initial: 計算值為 0 1 auto

none:計算值為 0 0 auto

inherit:從父元素繼承

[ flex-grow ]:定義彈性盒子元素的擴充套件比率。

[ flex-shrink ]:定義彈性盒子元素的收縮比率。

[ flex-basis ]:定義彈性盒子元素的預設基準值。

css3 彈性盒子

display webkit flex 定義元素為彈性盒子 屬性 direction 方向 flex direction row 預設值,子元素正向1 2 3 布局 flex direction row reverse 子元素正向3 2 1 布局 flex direction column 縱向布局...

Css3 彈性盒子

彈性盒子是 css3 的一種新的布局模式。css3 彈性盒 flexible box 或 flexbox 是一種當頁面需要適應不同的螢幕大小以及裝置型別時確保元素擁有恰當的行為的布局方式。引入彈性盒布局模型的目的是提供一種更加有效的方式來對乙個容器中的子元素進行排列 對齊和分配空白空間。彈性盒子由彈...

Css3彈性盒子

css3彈性盒子 fiexbox 1.彈性盒子 隨螢幕放大縮小盒子也放大縮小,不出現滾動條。對容器中的子元素進行排列 對齊和分配。2.彈性盒子 彈性容器 彈性子元素 注 彈性盒子在父元素寫,只定義子元素的布局。乙個彈性容器包含乙個或多個彈性子元素。預設情況每個容器只有一行,彈性子元素在彈性盒子內一行...