Flexbox布局

flex布局有主軸和側(cè)軸兩個軸(main axis和cross axis),這兩個軸是可以互換的。

默認(rèn)情況下,主軸是整個容器的寬,側(cè)軸是高。

flex容器的所有屬性,即父容器

flex-direction:設(shè)置主軸為容器的寬或高,側(cè)軸與之相應(yīng)的改變,控制flex項目的排序

主軸和側(cè)軸是可以通過flex-direction屬性來定義的。對應(yīng)的屬性如下:

flex-direction : row ; ? //默認(rèn)值,主軸為寬,從左往右

flex-direction : row-reverse ; ?//主軸為寬 , 從右往左,包括div的排列順序也會倒置,從右往左排起

flex-direction : column ; ? //主軸為高,側(cè)軸為寬,從上往下

flex-direction : column ; ? //主軸為高,側(cè)軸為寬,從下往上,div排列順序也倒置

justify-content : 主軸對齊(針對主軸),控制flex項目的對齊形式

先要清楚設(shè)定的主軸是什么,再來設(shè)置這個屬性,屬性值如下:

justify-content : flex-start ? //默認(rèn)值,按照flex-direction設(shè)置的主軸順序?qū)R排列

justify-content : flex-end? //按照flex-direction設(shè)置的主軸順序的結(jié)尾進(jìn)行對齊排列

justify-content : center ?//中間點向兩邊延伸對齊

justify-content : space-between //在主軸上,即布局方式的兩端作為同時開始的位置,向中間排列,每個子元素之間的間隔相等

justify-content : space-around //每個子元素兩邊都擁有相等間隔,且子元素彼此的間隔不會重疊,所以子元素之間的間隔比子元素與邊框的間隔大一倍

align-items :側(cè)軸對齊,和 justify-content 主軸對齊的原理一樣

先要清楚設(shè)定的側(cè)軸是什么,再來設(shè)置這個屬性,屬性值如下:

align-items : flex-start ; ? //默認(rèn)值??

align-items : flex-end ;?

align-items : center; ? //側(cè)軸上居中對齊

align-items : baseline ;? //伸縮flex項目與它們的基線對齊,即第一行文字的基線對齊

align-items : stretch ;? //將伸縮flex項目從側(cè)軸起點拉伸到側(cè)軸終點

flex-wrap : 伸縮flex項目在主軸上的換行方式

每個伸縮容器都有且只有一個伸縮行。使用flex-wrap你可以為伸縮容器創(chuàng)建多個伸縮行。

對應(yīng)的屬性值如下:

flex-wrap : nowrap? //不換行? (默認(rèn)值)

flex-wrap : wrap ?//換行,第一行在上方(這里指的主軸為寬時,當(dāng)為高時,左右之分)

flex-wrap : wrap-reverse? // 換行,第一行在下方(這里指的主軸為寬時,當(dāng)為高時,左右之分)

align-content : 堆棧伸縮行,對齊的不是伸縮flex項目,而是整個主軸行

align-content會更改flex-wrap的行為。它和align-items相似,但是不是對齊伸縮項目,它對齊的是伸縮行。

對應(yīng)的屬性值:

align-content : stretch

align-content :flex-start

align-content :flex-end

align-content :center

align-content :space-between

align-content :space-around

flex-flow :設(shè)置主軸與換行

flex-flow: [flex-direction] [flex-wrap]


flex項目的所有屬性,即子元素的屬性

order : 設(shè)置flex項目的顯示順序

設(shè)置伸縮項目的 order 可以調(diào)整它們渲染時的順序

order : 0 ; //默認(rèn)值為0, 數(shù)值越小,越靠前,可以設(shè)置負(fù)數(shù)

align-self : 側(cè)軸對齊

允許單個子元素與其他子元素不一樣的對齊方式,可以覆蓋父元素設(shè)定的align-items屬性。默認(rèn)值為auto,表示繼承父元素的align-items屬性,如果沒有父元素,則等同stretch(填充滿)

align-self : stretch ; //填充滿真?zhèn)€側(cè)軸

align-self : flex-start ; ? //以側(cè)軸的開始頭對齊

align-self : flex-end ; //以側(cè)軸的末尾對齊

align-self : center ; ?//以側(cè)軸的中點對齊

align-self? : baseline ;? //伸縮flex項目與它們的基線對齊,即第一行文字的基線對齊

align-self各屬性值的示例圖

flex-grow? //定義子元素的放大比例,默認(rèn)為0(不放大),前提是父容器有 ? ? ? ? ? ? ? ? ? ? 空余空間

flex-shrink? //定義子元素的縮小比例,默認(rèn)值為1,不能為負(fù)數(shù),前提是父 ? ? ? ? ? ? ? ? ? ? ? 容器有空余空間

flex-basis ?//在子元素分配空余空間前,設(shè)定指定的子元素的空間大小,默 ? ? ? ? ? ? ? ? ? ? ? 認(rèn)auto(原值)


flex : 伸縮性,是flex-grow ? flex-shrink ? flex-basis 三部分的合并

flex :flex-grow ?[flex-shrink] ?[flex-basis] //后兩者為可選擇填寫

當(dāng) flex :number 時,其實設(shè)置的就是flex-grow,默認(rèn)值是0,表示不放大,不參與伸縮

flex: 0 ? ?//表示不放大,不參與伸縮,需要給該項目設(shè)置寬度,最好給一個flex-basis設(shè)置它的主 ? ? ? ? ? ? ? 軸寬度

當(dāng) flex : 2 時,就是把所有flex不為0的可伸縮項目的數(shù)值加起來設(shè)為count,則該flex:2的項 目,所占的剩余的全部空間的2/count大小

flex: none ? ?//一個flex屬性值被設(shè)為none的伸縮項目,在任何情況都不會發(fā)生伸縮。

flex: initial ? // 一個flex屬性值被設(shè)為initial的伸縮項目,在有剩余空間的情況下不會有任何變 ? ? ? ? ? ? ? ? ? ? ? ? ?化,但是在必要的情況下會被收縮。


注意:

多列組中所有column-*屬性、float、clear、vertical-align屬性在flex容器上沒有作用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • H5移動端知識點總結(jié) 閱讀目錄 移動開發(fā)基本知識點 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇閱讀 4,824評論 0 26
  • 前言 FlexBox是css3的一種新的布局方式,天生為解決布局問題而存在的它,比起傳統(tǒng)的布局方式,我們使用Fle...
    zevei閱讀 1,529評論 23 3
  • flex-direction (適用于父類容器的元素上) 設(shè)置或檢索伸縮盒對象的子元素在父容器中的位置。 語法 f...
    lijaha閱讀 486評論 0 1
  • title: flex布局date: 2017-07-07 14:13:33tags: css筆記 flexbox...
    Gary23閱讀 1,620評論 0 0
  • 移動開發(fā)基本知識點 一.使用rem作為單位 html { font-size: 100px; } @media(m...
    橫沖直撞666閱讀 3,719評論 0 6

友情鏈接更多精彩內(nèi)容