Flex是Flexible Box的縮寫,意爲」彈性佈局」,用來爲盒狀模型提供最大的靈活性,旨在提供一個更有效地佈局、對齊方式,而且可以使容器中的子元素大小未知或動態變化狀況下仍然可以分配好子元素之間的空間。html
Flex 佈局的主要思想是使父容器可以調節子元素的寬度/高度(和排列順序),從而可以最好地填充可用空間(主要是爲了適應全部類型的顯示設備和屏幕尺寸)。flex布容器可以放大子元素使之儘量填充可用空間,也能夠收縮子元素使之不溢出。佈局
最重要的是,flexbox佈局與方向無關,不一樣於常規佈局(基於垂直的塊(block)和基於水平的內聯(inline))。 雖然傳統佈局適用於頁面,但它們對於大型或複雜的應用程序佈局來講缺少靈活性(特別是在改變方向,調整大小,拉伸,收縮等方面)。flex
注:flexbox
採用 Flex 佈局的元素,稱爲 Flex 容器(flex container),簡稱"容器"。它的全部子元素自動成爲容器成員,稱爲 Flex 項目(flex item),簡稱"項目"。spa
space-around 和 space-between 這兩個值的區別不能很直觀的理解。space-between
是兩端對齊,使每一個矩形子元素(flex項)之間的間隔是相等的,但兩端的矩形子元素(flex項)不會和容器之間產生間隔。code
space-around
則會在每一個矩形子元素(flex項)的兩邊產生一個相同大小的間隔,也就是說兩端的矩形子元素(flex項)和容器之間的間隔大小正好是兩個矩形子元素(flex項)之間間隔大小的一半(每一個矩形子元素產生的間隔不會重疊,因此間隔變成兩倍)。htm
(注意 對於 align-items: stretch 來講,必須將每個矩形子元素(flex項)的高度設置爲 auto,不然 height 屬性將會覆蓋該 stretch)blog
對於 align-items: baseline 來講,要注意若是去掉段落標籤或者沒內容,矩形子元素(flex項)就會按照每一個矩形的底部對齊,以下圖所示:圖片
爲了更好地演示主軸和交叉軸的區別,讓咱們結合 justify-content和align-items,看看在 flex-direction 兩個不一樣屬性值的做用下,軸心有什麼不一樣:ip
align-content屬性定義了多根軸線的對齊方式。若是項目只有一根軸線,該屬性不起做用。
注:項目屬性的全面理解較爲複雜,能夠參考文章:https://www.html.cn/archives/...
https://www.html.cn/archives/...