採用flex
布局的元素,稱為flex
容器(flex container)
,簡稱"容器"。它的所有子元素自動成為容器成員,稱為flex
專案(flex item)
,簡稱"專案"。
容器預設存在兩根軸:水平的主軸(main axis)
和垂直的交叉軸(cross axis)
。主軸的開始位置(與邊框的交叉點)叫做main start
,結束位置叫做main end
;交叉軸的開始位置叫做cross start
,結束位置叫做cross end
。
專案預設沿主軸排列。單個專案佔據的主軸空間叫做main size
,佔據的交叉軸空間叫做cross size
。
基本概念
flex
屬性是flex item
的屬性,也就是flex
布局的容器裡所有子元素的屬性。
flex
屬性是flex-gorw
,flex-shrink
,flex-basis
三個屬性的簡寫,預設值為0 1 auto
。後兩個屬性可選。
該屬性有兩個快捷值:auto
(1,1,auto)和none
(0,0,auto)。
建議優先使用這個屬性,而不是分離使用三個屬性,因為瀏覽器會推算相關值。
flex
的取值分析
flex
取auto
和none
.item
等同於.item
*************************====
.item
等同於.item
flex
取乙個非負數字,則該值為flex-grow
的值
.item
等同於.item
// flex取乙個非負數字,flex-shrink預設取1,flex-basis預設取0%
flex
取兩個非負數字,則分別視為flex-grow
和flex-shrink
的值,flex-basis
取0%
.item
等同於.item
flex
取乙個非負數字和長度或百分比,則視為flex-grow
和flex-basis
的值。flex-shrink
取1
.item
等同於.item
flex
取乙個長度或者百分比,則視為flex-basis
的值。flex-grow
和flex-shrink
分別取1
.item
等同於.item
********************
.item
等同於.item
flex-basis
屬性定義了在分配多餘空間之前,專案佔據的主軸空間(main size)
。瀏覽器根據這個屬性,計算主軸是否有多餘空間。它的預設值為auto
,即專案(flex item)
的本來大小。
取值情況:
1.取auto
時,會首先檢索該項目的主尺寸,如果該項目的主尺寸不為auto
,則採取主尺寸的值。否則,取專案本來的大小。
//flex-basis取auto時,檢索主尺寸為200px,取主尺寸值200px。
.item
********************=
.item
檢索主尺寸也為auto或者沒有值,則取專案(flex item)本身的大小
2.取值為百分比時,會檢索專案(flex item)
的父容器(flex container)
的主尺寸,如果有值,按其主尺寸的百分比取值。如果沒有值,或者父容器的尺寸取決於子元素,則計算結果和設為auto
一樣
flex-grow
屬性定義專案的放大比例,預設為0,即如果存在剩餘空間,也不放大。flex-grow
分配的時剩餘空間,即父容器總尺寸 - 每個子元素flex-basis = 剩餘空間
,各子元素按照flex-grow
的比例佔據剩餘空間
文章參考:
阮一峰:flex布局教程
flex布局 Flex布局
摘要 flex布局主要思想是讓容器有能力讓其子專案能夠改變其寬度 高度 甚至順序 以最佳方式填充可用空間 主要是為了適應所有型別的顯示裝置和螢幕大小 作者 星星 flex 是 flexible box 的縮寫,意為 彈性布局 flex布局主要思想是讓容器有能力讓其子專案能夠改變其寬度 高度 甚至順序...
細說css3 flex布局之flex專案屬性
在前篇博文中已經詳細敘述了flex布局中的容器屬性,那麼現在就來談談flex專案屬性那些事 以下6個屬性是作用在flex專案上的 1.1 order屬性 該屬性定義專案的排列順序,數值越小,排列越靠前,預設值為0。用法及效果如下 html class flex box class flex item...
布局(flex布局)
彈性盒模型 display flex,排列方式根據主軸方向排列。子元素超出預設不換行,而是進行壓縮 flex direction 彈性盒模型主軸方向設定 row 預設 從左到右 側軸 從上到下 row reverse 從右到左 側軸 從上到下 column 從上到下 側軸 從左到右 column r...