IT培訓-高端面授IT培訓機構
          云和教育:云和數據集團高端IT職業教育品牌
          • 國家級
            全民數字素養與技能培訓基地
          • 河南省
            第一批產教融合型企業建設培育單位
          • 鄭州市
            數字技能人才(碼農)培養評價聯盟

          深入理解H5培訓學習中CCS彈性盒子flex布局

          • 發布時間:
            2019-10-16
          • 版權所有:
            云和教育
          • 分享:

          一、概念

          彈性盒子,是另外一種布局方式,想要讓元素變成一個彈性盒子,只需要給元素一個display:flex屬性即可,擁有display:flex的元素會變成一個容器,其子元素會變成這個容器中的項目。

          Flex兼容性: 在IE上兼容不好,但是在移動端兼容不是問題

          在使用彈性盒子的時候,容器中會存在主軸和副軸(交叉軸),一般情況下,主軸為橫軸,副軸為縱軸,但是主軸和副軸可以通過flex-direction改變,項目會自動的在容器的主軸上排列

          有了flex之后就可以拋棄float布局了

          配圖1 彈性盒子flex布局.jpg

          二、容器的六個屬性

          flex-direction 調整主軸 (正常默認主軸是橫軸,項目從左向右排列flex-start到flex-end)

          row 默認值

          row-reverse主軸為橫軸,flex-start在右邊,flex-end在左邊

          column? ?主軸為縱軸,flex-start在上面,flex-end在下面

          column-reverse主軸為縱軸,flex-start在下面,flex-end在上面

          flex-wrap控制項目的換行

          nowrap不換行 (默認),如果項目總寬度大于容器總寬度,項目寬度會被壓縮

          wrap換行 第一行在上方

          wrap-reverse換行,第一行在下面

          flex-flow是flex-direction和flex-wrap的符合屬性

          flex-flow:column wrap

          justify-content控制了項目在主軸的排列方式

          flex-start項目順序不變,左頂格(默認)

          flex-end項目順序不變,右頂格

          center項目順序不變,從中間開始

          space-around將剩余的空間等分,平分給每個項目左右兩邊

          space-between將每個項目之間的間隔設為相等,左右兩個項目貼邊

          space-evenly將每個項目之間的間距設置的完全一致

          align-items 控制了項目在副軸的排列方式

          flex-start居副軸的頂部,如果副軸有空間會把副軸的空間等分,所有的元素都在flex-start的位置

          flex-end居副軸的底部

          center居副軸的中間

          stretch如果在副軸上沒有距離,那么默認拉伸為100%

          align-content只適用于有換行的項目

          flex-start從副軸的flex-start開始

          flex-end從副軸的flex-end開始

          center項目在容器的中間位置,如果在縱軸上有空間,只在所有的項目的上下部分有留白

          space-around將剩余的空間等分,平分給每行項目上下兩邊

          space-between將每行項目之間的間隔設為相等,上下兩行項目貼邊

          ustretch將每個項目之間的間距設置的完全一致

          項目的六個屬性

          flex-grow 項目放大默認值為0

          放大后的寬度 = 原本寬度 + 空白寬度 / (所有grow的總值) * 設置的grow值

          如果沒有空白寬度,設置flex-grow沒有意義

          flex-shrink項目壓縮 默認值為1

          最終寬度 = 項目本身寬度 – 需要壓縮的寬度 / 總的shrink值 * 單個項目的shrink值

          flex-basis 項目在主軸占的空間

          默認值為1

          設置固定值,會將原有的 寬度/高度 變成設置的值

          這個屬性只要存在就會覆蓋原有的寬高

          flex復合屬性

          felx是flex-grow? flex-shrink? flex-basis的復合屬性

          默認值為flex: 0 1 auto

          felx:1? 表示flex-grow是1,其余的值不變

          align-self當前項目在副軸的位置

          flex-start在副軸的頂部

          flex-end在副軸的底部

          center在副軸的中間

          order 當前項目的排列順序

          默認值為0

          值越小越靠前,反之越靠后

          案例

          1、手機微信下方菜單布局

          配圖2 彈性盒子flex布局.jpg

          2、文章詳情中關于作者介紹

          配圖3 彈性盒子flex布局.jpg

          3、骰子

          配圖4 彈性盒子flex布局.jpg