本篇為學習筆記。內容來自網路。
布局的傳統解決方案,基於盒狀模型,依賴 display 屬性 + position 屬性 + float 屬性。它對於那些特殊布局非常不方便,比如,垂直居中就不容易實現。
flexbox 是一種一維的布局,是因為乙個 flexbox 一次只能處理乙個維度上的元素布局,一行或者一列。作為對比的是另外乙個二維布局 css grid layout,可以同時處理行和列上的布局。
採用 flex 布局的元素,稱為 flex 容器(flex container),簡稱"容器"。它的所有子元素自動成為容器成員,稱為 flex 專案(flex item),簡稱"專案"。
容器預設存在兩根軸:水平的主軸(main axis)和垂直的交叉軸(cross axis)。主軸的開始位置(與邊框的交叉點)叫做 main start,結束位置叫做 main end;交叉軸的開始位置叫做 cross start,結束位置叫做 cross end。
flex-direction 屬性決定主軸的方向(即專案的排列方向)。
flex-wrap 決定如何換行
flex-flow 屬性是 flex-direction 屬性和 flex-wrap 屬性的簡寫形式,預設值為 row nowrap。(2 個屬性組合)
justify-content 屬性定義了專案在主軸上的對齊方式。(預設是水平方向對齊方式,如水平居中等)
align-items 屬性定義專案在交叉軸上如何對齊。
align-content 屬性定義了多根軸線的對齊方式。如果專案只有一根軸線,該屬性不起作用。
以下 6 個屬性設定在專案上。
order 屬性定義專案的排列順序。數值越小,排列越靠前,預設為 0。
flex-grow 屬性定義專案的放大比例,預設為 0,即如果存在剩餘空間,也不放大。
如果所有專案的 flex-grow 屬性都為 1,則它們將等分剩餘空間(如果有的話)。如果乙個專案的 flex-grow 屬性為 2,其他專案都為 1,則前者佔據的剩餘空間將比其他項多一倍。
flex-shrink 屬性定義了專案的縮小比例,預設為 1,即如果空間不足,該專案將縮小。
如果所有專案的 flex-shrink 屬性都為 1,當空間不足時,都將等比例縮小。如果乙個專案的 flex-shrink 屬性為 0,其他專案都為 1,則空間不足時,前者不縮小。
負值對該屬性無效。
flex-basis 屬性定義了在分配多餘空間之前,專案佔據的主軸空間(main size)。瀏覽器根據這個屬性,計算主軸是否有多餘空間。它的預設值為 auto,即專案的本來大小。
它可以設為跟 width 或 height 屬性一樣的值(比如 350px),則專案將佔據固定空間。
flex 屬性是 flex-grow, flex-shrink 和 flex-basis 的簡寫,預設值為 0 1 auto。後兩個屬性可選。
該屬性有兩個快捷值:auto (1 1 auto) 和 none (0 0 auto)。
建議優先使用這個屬性,而不是單獨寫三個分離的屬性,因為瀏覽器會推算相關值。
align-self 屬性允許單個專案有與其他專案不一樣的對齊方式,可覆蓋 align-items 屬性。預設值為 auto,表示繼承父元素的 align-items 屬性,如果沒有父元素,則等同於 stretch。
預設布局換行 Flex布局入門
主要提供簡便 完整 響應式布局解決方法,設定flex布局後元素的 float clear vertical align屬性將失效 flex direaction 決定主軸的方向 引數 row 預設值 主軸為水平方向,起點在左端 row reverse 同上,起點在右端 column 主軸為垂直方向,...
預設布局換行 css 之Flex布局
一 flex 布局是什麼?flex 是 flexible box 的縮寫,意為 彈性布局 用來為盒狀模型提供最大的靈活性。任何乙個容器都可以指定為 flex 布局。box 行內元素也可以使用 flex 布局 box 其中webpick伺服器前邊必須加上 webpick 注意,設為 flex 布局以後...
預設布局換行 移動WEB開發 Flex布局
1 如果是pc端頁面布局,我們還是使用傳統布局 2 如果時移動端或者不考慮相容性問題的pc端頁面布局,我們使用flex彈性布局 flex布局原理 就是通過給父盒子新增flex屬性,來控制子盒子的位置和排列順序。預設主軸為水平從左往右 flex direction row 主軸為水平從右往左 flex...