Flex的使用方式

鑒于微信小程序和阿里WEEX在開(kāi)發(fā)中都已經(jīng)使用了Flex,本文介紹一下常用屬性.


一、概念及使用方式

Flex 是 Flexible Box 的縮寫(xiě),意為"彈性布局",用來(lái)為盒狀模型提供最大的靈活性。

  .box {
    display: flex;
  }

二姑原、屬性


以下6個(gè)屬性

  • flex-direction
  • flex-wrap
  • flex-flow
  • justify-content
  • align-items
  • align-content

2.1 flex-direction 方向


決定主軸的方向(即項(xiàng)目的排列方向)

.box {
    flex-direction: row | row-reverse | column | column-reverse;
}
  • row (默認(rèn)值):主軸為水平方向,起點(diǎn)在左端呜舒。
  • row-reverse :主軸為水平方向锭汛,起點(diǎn)在右端。
  • column :主軸為垂直方向袭蝗,起點(diǎn)在上沿
  • column-reverse:主軸為垂直方向唤殴,起點(diǎn)在下沿。

2.2 flex-wrap 換行


默認(rèn)情況下到腥,項(xiàng)目都排在一條線(又稱"軸線")上朵逝。flex-wrap屬性定義,如果一條軸線排不下左电,如何換行廉侧。

.box{
    flex-wrap: nowrap | wrap | wrap-reverse;
}
image

2.3 flex-flow 方向和換行的簡(jiǎn)寫(xiě)


flex-direction屬性和flex-wrap屬性的簡(jiǎn)寫(xiě)形式,默認(rèn)值為row nowrap

.box {
  flex-flow: <flex-direction> <flex-wrap>;
}

2.4 justify-content


主軸上的對(duì)齊方式

.box {
    justify-content: flex-start | flex-end | center | space-between | space-around;
  }
  • flex-start(默認(rèn)值):左對(duì)齊
  • flex-end:右對(duì)齊
  • center: 居中
  • space-between:兩端對(duì)齊篓足,中間間距相等。要注意特殊情況闰蚕,當(dāng)剩余空間為負(fù)數(shù)或者只有一項(xiàng)時(shí)栈拖,效果等同于flex-start
  • space-around:表示間距相等,中間間距是兩端間距的2倍没陡。要注意特殊情況涩哟,當(dāng)剩余空間為負(fù)數(shù)或者只有一個(gè)項(xiàng)時(shí),效果等同于center

2.5 align-items


側(cè)軸上的對(duì)齊方式

  .box {
    align-items: flex-start | flex-end | center | baseline | stretch;
  }
  • stretch(默認(rèn)值):如果項(xiàng)目未設(shè)置高度或設(shè)為auto盼玄,將占滿整個(gè)容器的高度贴彼。


  • flex-start:側(cè)軸的起點(diǎn)對(duì)齊。

  • flex-end:側(cè)軸的終點(diǎn)對(duì)齊埃儿。

  • center:側(cè)軸的中點(diǎn)對(duì)齊器仗。


  • baseline: 項(xiàng)目的第一行文字的基線對(duì)齊。


2.6 align-content


多根軸線的對(duì)齊方式。如果項(xiàng)目只有一根軸線精钮,該屬性不起作用威鹿。

  .box {
    align-content: flex-start | flex-end | center | space-between | space-around | stretch;
  }
  • stretch:默認(rèn)值,當(dāng)Flex子項(xiàng)未設(shè)置高度或者高度值為auto時(shí)轨香,stretch起作用忽你,將Flex子項(xiàng)高度設(shè)置為行高度。

  • flex-start:表示各行與側(cè)軸開(kāi)始位置對(duì)齊臂容,第一行緊靠側(cè)軸開(kāi)始邊界科雳,之后的每一行都緊靠前面一行

  • flex-end:表示各行與側(cè)軸的結(jié)束位置對(duì)齊,最后一行緊靠側(cè)軸結(jié)束邊界脓杉,之后的每一行都緊靠前面一行

  • center:表示各行與側(cè)軸中間對(duì)其

  • space-between:表示兩端對(duì)齊糟秘,中間間距相等。要注意特殊情況丽已,當(dāng)剩余空間為負(fù)數(shù)時(shí)蚌堵,效果等同于flex-start

  • space-around:表示各行之間間距相等,中間間距是兩端間距的2倍沛婴。要注意特殊情況吼畏,當(dāng)剩余空間為負(fù)數(shù)時(shí),效果等同于center


四嘁灯、子屬性


  • order
  • flex-grow
  • flex-shrink
  • flex-basis
  • flex
  • align-self

4.1 order


定義項(xiàng)目的排列順序泻蚊。數(shù)值越小,排列越靠前丑婿,默認(rèn)為0性雄。

.item {  order: <integer>;} 

4.2 flex-grow


定義項(xiàng)目對(duì)剩余空間的放大比例,默認(rèn)為0羹奉,即如果存在剩余空間秒旋,也不放大。類似android里的weight

.item {  
  flex-grow: <number>; /* default 0 */  
}  

來(lái)看這里有例有據(jù)
深入理解 flex-grow & flex-shrink & flex-basis

4.3 flex-shrink


定義了項(xiàng)目的縮小比例诀拭,默認(rèn)為1迁筛,即如果空間不足,該項(xiàng)目將縮小耕挨。

如果所有項(xiàng)目的flex-shrink屬性都為1细卧,當(dāng)空間不足時(shí),都將等比例縮小筒占。如果一個(gè)項(xiàng)目的flex-shrink屬性為0贪庙,其他項(xiàng)目都為1,則空間不足時(shí)翰苫,前者不縮小止邮。負(fù)值對(duì)該屬性無(wú)效。

注意:flex-shrink只能在不換行的情況下使用

.item {  
  flex-shrink: <number>; /* default 1 */  
} 

來(lái)看這里有例有據(jù)
深入理解 flex-grow & flex-shrink & flex-basis

4.4 flex-basis


flex-basis屬性定義了在分配多余空間之前,項(xiàng)目占據(jù)的主軸空間(main size)农尖。瀏覽器根據(jù)這個(gè)屬性析恋,計(jì)算主軸是否有多余空間。它的默認(rèn)值為auto盛卡,即項(xiàng)目的本來(lái)大小助隧。

該屬性來(lái)設(shè)置該元素的寬度。當(dāng)然滑沧,width也可以用來(lái)設(shè)置元素寬度并村。如果元素上同時(shí)設(shè)置了width和flex-basis,那么flex-basis會(huì)覆蓋width的值。

徹底搞懂css3 flex屬性學(xué)習(xí)筆記5

.item {  
  flex-basis: auto | length | percentage | content ; /* default auto */  
}  

4.5 flex


聚合屬性 這個(gè)屬性是flex-grow滓技、flex-shrink和flex-basis屬性的簡(jiǎn)寫(xiě)
該屬性有兩個(gè)快捷值:auto (1 1 auto) 和 none (0 0 auto)哩牍。
建議優(yōu)先使用這個(gè)屬性,而不是單獨(dú)寫(xiě)三個(gè)分離的屬性令漂,因?yàn)闉g覽器會(huì)推算相關(guān)值膝昆。

.item {  
  flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ] 
}  

4.6 align-self


align-self屬性允許單個(gè)項(xiàng)目有與其他項(xiàng)目不一樣的對(duì)齊方式,可覆蓋align-items屬性叠必。默認(rèn)值為auto荚孵,表示繼承父元素的align-items屬性,如果沒(méi)有父元素纬朝,則等同于stretch收叶。

.item {  
  align-self: auto | flex-start | flex-end | center | baseline | stretch;  
}

以下內(nèi)容參考

阮一峰:Flex 布局教程:語(yǔ)法篇

Junru5:CSS Flex布局屬性整理

xiecg:深入理解 flex-grow & flex-shrink & flex-basis

black&white的css3 flex屬性學(xué)習(xí)筆記5

CSS教程

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市共苛,隨后出現(xiàn)的幾起案子判没,更是在濱河造成了極大的恐慌,老刑警劉巖隅茎,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件澄峰,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡辟犀,警方通過(guò)查閱死者的電腦和手機(jī)摊阀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)踪蹬,“玉大人,你說(shuō)我怎么就攤上這事臣咖≡镜罚” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵夺蛇,是天一觀的道長(zhǎng)疚漆。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么娶聘? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任闻镶,我火速辦了婚禮,結(jié)果婚禮上丸升,老公的妹妹穿的比我還像新娘铆农。我一直安慰自己,他們只是感情好狡耻,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布墩剖。 她就那樣靜靜地躺著,像睡著了一般夷狰。 火紅的嫁衣襯著肌膚如雪岭皂。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,079評(píng)論 1 285
  • 那天沼头,我揣著相機(jī)與錄音爷绘,去河邊找鬼。 笑死进倍,一個(gè)胖子當(dāng)著我的面吹牛土至,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播背捌,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼毙籽,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了毡庆?” 一聲冷哼從身側(cè)響起坑赡,我...
    開(kāi)封第一講書(shū)人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎么抗,沒(méi)想到半個(gè)月后毅否,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蝇刀,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年螟加,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吞琐。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡捆探,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出站粟,到底是詐尸還是另有隱情黍图,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布奴烙,位于F島的核電站助被,受9級(jí)特大地震影響剖张,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜揩环,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一搔弄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧丰滑,春花似錦顾犹、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至貌亭,卻和暖如春柬唯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背圃庭。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工锄奢, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人剧腻。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓拘央,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親书在。 傳聞我的和親對(duì)象是個(gè)殘疾皇子灰伟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • H5移動(dòng)端知識(shí)點(diǎn)總結(jié) 閱讀目錄 移動(dòng)開(kāi)發(fā)基本知識(shí)點(diǎn) calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇閱讀 4,395評(píng)論 0 26
  • 移動(dòng)開(kāi)發(fā)基本知識(shí)點(diǎn) 一.使用rem作為單位 html { font-size: 100px; } @media(m...
    橫沖直撞666閱讀 3,453評(píng)論 0 6
  • 應(yīng)用在父元素上-flex box 1.模型 方向 換行 display: flex(盒子模型) 定義父元素為fle...
    林立鎮(zhèn)閱讀 3,364評(píng)論 0 27
  • 傳統(tǒng)的網(wǎng)頁(yè)布局基于盒裝模型,使用display儒旬,position栏账,float屬性來(lái)達(dá)成各種布局。對(duì)于一些特殊的布局...
    exialym閱讀 2,626評(píng)論 0 11
  • 2009年栈源,W3C 提出了一種新的方案----Flex 布局挡爵,可以簡(jiǎn)便、完整甚垦、響應(yīng)式地實(shí)現(xiàn)各種頁(yè)面布局茶鹃。目前,它已...
    丫3閱讀 560評(píng)論 0 0