注意相容問題:
示例的dom結構:
<基礎樣式設計:div
class
="box"
>
<
div
class
="item"
>1
div>
<
div
class
="item"
>2
div>
<
div
class
="item"
>3
div>
div>
.box .item1、flex-direction:用於指定flex主軸的方向,繼而決定 flex子項在flex容器中的位置,取值:row | row-reverse | column | column-reverse;
flex-direction
四種取值的效果圖如下:
2、flex-wrap:用於指定flex子項是否換行,取值:nowrap | wrap | wrap-reverse;
flex-wrap
三種取值的效果圖如下:
從示例圖中不難發現,換行以後兩行之間產生了很大的間距,這個問題,在後面介紹的align-content
屬性中可以得到很好的解決。
3、flex-flow:復合屬性,是flex-direction
和flex-wrap
的簡寫屬性,是用於指定flex子項的排列方式;
4、justify-content:用於指定主軸(水平方向)上flex子項的對齊方式,取值:flex-start | flex-end | center | space-between | space-around;
justify-content
的前三種取值的效果圖如下:
justify-content
取值為space-between
的效果圖如下(注意特殊情況下效果等同於flex-start):
5、align-items:用於指定側軸(垂直方向)上flex子項的對齊方式,取值:stretch | flex-start | flex-end | center | baseline
align-items
取值為stretch
的效果圖如下:
align-items
取值為flex-start flex-end center
的效果圖如下:
align-items
取值為baseline
的效果圖如下:
6、align-content:該屬性只作用於多行的情況下,用於多行的對齊方式,取值:stretch | flex-start | flex-end | center | space-between | space-around;
再次強調:該屬性只作用於多行的情況,在只有一行的flex容器上無效,另外該屬性可以很好的處理,換行以後相鄰行之間產生的間距。
align-content
各個取值的效果圖如下:
align-content.png
1、order:該屬性用來指定flex子項的排列順序,數值越小,越靠前,可以為負數
取值:數值,預設值為0;
2、flex-grow:用來指定flex子項的擴充套件比例,不可以為負數,flex容器會根據flex子項設定的擴充套件比例作為比率來分配剩餘空間,
取值:數值,預設值為0,表示即使存在剩餘空間,flex子項也不會擴充套件
如下圖中,按照1:3分配剩餘空間:
用來指定flex子項的收縮比例,不可以為負數,flex容器會根據flex子項設定的收縮比例作為比率來收縮各個flex子項
取值:數值,預設值為1,表示所有子項在剩餘空間為負數時,等比例收縮
注意:flex-shrink
只能在不換行的情況下使用
如下圖中,按照1:3收縮:
用來指定flex子項的佔據的空間,不可以為負數
取值:auto | length | percentage | content
如下圖中,為item設定flex-basis: 50%;
,在按照1:3分配剩餘空間:
grow.png
容器寬度為200px,item1原始寬度為50px,設定flex-basis: 50%;
後寬度變成100px,擴充套件後寬度為110.5px;而item2原始寬度為50px,擴充套件後為81.5px,比例正好是1:3
注意:設定flex-grow
進行分配剩餘空間,或者使用flex-shrink
進行收縮都是在flex-basis的基礎上進行的;
當flex-basis
的值以及width(或者height)的值均為非auto時,
當width(或者height)的值為auto時,且內容的長度大於flex-basis
設定的值,此時以content自身長度值為準,且不能進行flex-shrink收縮。相反如果內容的長度小於flex-basis
設定的值,則會使用flex-basis
設定的值;
當存在最小值min-width
(min-height
)時,且flex-basis
的值小於最小值時,寬度以最小值為準,當flex-basis
的值大於最小值時,以flex-basis
的值為準
5、flex
復合屬性,是flex-grow
、flex-shrink
和flex-basis
的簡寫屬性,用來指定flex子項如何分配空間
取值:none | 各拆分項屬性
注意:6、align-self
用來單獨指定某flex子項的對齊方式
取值:auto | flex-start | flex-end | center | baseline | stretch
css flex布局實用
張歆琳 關注2016.06.17 10 50 字數 701 閱讀 1063 喜歡 15 首先弄出原始的html結構,左右側邊欄定寬220px id footer footerdiv 現在將內容容器 page 設成flex彈性盒模型 page 中間main就是個普通的div,因此寬度好像沒有自適應,很...
css flex布局基礎
1 flex 讓所有彈性盒模型物件的子元素都有相同的長度,且忽略它們內部的內容 塊級元素 藍色 紅色藍色 紅色藍色 紅色藍色 紅色 main main div 效果 2 flex basis 專案的長度。合法值 auto inherit 或乙個後跟 px em 或任何其他長度單位的數字 main1 ...
css flex布局知識梳理
布局的傳統解決方案,基於盒裝模型,依賴display屬性 position屬性 float屬性。它對於那些特殊布局非常不方便,比如,垂直居中 就不容易實現。flex注意,設為 flex 布局以後,子元素的float clear和vertical align屬性將失效。採用flex布局的稱其為 容器 ...