文章專區

網頁設計相關文章

CSS3的flexbox版面配置-flex container(容器)可用的屬性

flexboxCSS3裡較為特殊的排版方式,相較於一般常使用的floatposition等屬性更為彈性,可以更有效率地做出一般方式所不易達成的效果。隨著響應式布局的興起,排版彈性大的flexbox使用率也頻繁了起來。
flexbox盒子模型如下圖(圖片來源:MDN),不同於其他一般的CSS屬性,它有
專屬於自己的一些屬性和概念,flexbox具有水平的起點與終點(main startmain end)、垂直的起點與終點(cross startcross end)、水平軸與垂直軸(main axiscross axis)

 

總體來說分為flex container(容器)flex item(子項目)兩大類。

如何使用flexbox的功能呢?

只要在容器內加上display:flex或是display:inline-flex,容器和其內的項目就會直接套用flexbox的設定喔!

display:flexdisplay:inline-flex的差別

就跟display:blockdisplay:inline-block差不多

 

此章先介紹flex container(容器)可用的屬性,有以下幾項:

flex-direction為容器內項目的排列方向

可用的值有:

row (從左到右,再從上到下)

row-reverse(row的顛倒順序)

column(從上到下,再從左到右)

column-reverse(column的顛倒順序)

 

flex-wrap決定flex項目是否換行

可用的值有:

nowrap不換行(預設值),不管有多少項目都會放在同一行內(寬度會自動調整)

wrap:換行,會依照內容或寬度自動換行。

wrap-reverse:換行,但順序相反

 

flex-flow是  flex-direction與  flex-wrap屬性的縮寫,就跟

border-width:1px;border-style:solid; border-color:#000」等於「 border:1px solid #000」是一樣的道理

flex-direction | flex-wrap

例:.box{flex-flow: row wrap}

 

justify-content決定flex項目與容器的水平對齊設定

flex-start:預設值,flex項目對齊最左邊的main start(水平起點)

flex-endflex項目對齊容器最左邊的main end(水平終點)

center:水平置中

space-between:平均分配  flex項目,最左與最右的flex項目會與main startmain end貼齊。

space-around:平均分配  flex項目,間距也是平均分配。

 

align-itemsjustify-content相反,決定的是flex項目與容器的垂直對齊設定。

flex-start:預設值,對齊容器最上面的cross start(垂直起點)

flex-end:對齊容器最下面的cross end(垂直終點)

center:垂直置中

stretch:將flex項目撐開至容器的高度

baseline:以所有flex項目的基線作為對齊標準

 

align-content

align-items是針對內容為單行的項目進行處理,但若是多行的項目,就要使用align-content此屬性。

flex-start:預設值,對齊容器最上面的cross start(垂直起點)

flex-end:對齊容器最下面的cross end(垂直終點)

center:垂直置中

space-between:第一行與最後一行分別貼齊最上方與最下方

space-around:行距平均分配

stretch:將flex項目撐開至容器的高度

 

以上便是flex container(容器)可用的屬性,下次將介紹flex item(子項目)