CSS入門(mén):Flex布局

一纤掸、Flex布局是什么?

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

任何一個(gè)容器都可以指定為Flex布局酌壕。

語(yǔ)法:

display:flex;?

display:inline-flex;

注意掏愁,設(shè)為Flex布局以后,子元素的float卵牍、clear和vertical-align屬性將失效果港。

二、Flex布局相關(guān)概念

采用Flex布局的元素糊昙,稱為Flex容器(flex container)辛掠,簡(jiǎn)稱"容器"。它的所有子元素自動(dòng)成為容器成員,稱為Flex項(xiàng)目(flex item)萝衩,簡(jiǎn)稱"項(xiàng)目"回挽。

通過(guò)上圖我們可以得到:

1. 容器水平有主軸((main axis),主軸的開(kāi)始位置(與邊框的交叉點(diǎn))叫做main start欠气,結(jié)束位置叫做main end

2. 容器垂直有交叉軸(cross axis)厅各,交叉軸的開(kāi)始位置叫做cross start,結(jié)束位置叫做cross end预柒。

3. 項(xiàng)目默認(rèn)沿主軸排列队塘。

4.單個(gè)項(xiàng)目 (item) 占據(jù)的主軸空間叫做main size,占據(jù)的交叉軸空間叫做cross size宜鸯。

三憔古、Flex容器的屬性

1. flex-direction:決定主軸的方向,即項(xiàng)目的排列方向

flex-direction:row | row-reverse | column | column-reverse;

這四個(gè)屬性值分別表示:

row(默認(rèn)值):主軸為水平方向淋袖,起點(diǎn)在左端鸿市。

row-reverse:主軸為水平方向,起點(diǎn)在右端即碗。

column:主軸為垂直方向焰情,起點(diǎn)在上沿。

column-reverse:主軸為垂直方向剥懒,起點(diǎn)在下沿内舟。


2. flex-wrap:定義如果一條軸線排不下,如何換行

當(dāng)我們把父元素的display設(shè)定為flex或者inline-flex的時(shí)候初橘,子元素是以單行的方式验游,彈性撐滿父元素。所以就要用flex-wrap來(lái)?yè)Q行保檐。這個(gè)屬性有三個(gè)值:

nowrap:預(yù)設(shè)值耕蝉,單行

wrap:多行

wrap-reverse:多行,但內(nèi)容元素反轉(zhuǎn)

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

flex-flow:?<flex-direction>|| <flex-wrap>垒在;

4. justify-content:定義了項(xiàng)目在主軸上的對(duì)齊方式

這個(gè)屬性有5個(gè)值,具體對(duì)齊方式與軸的方向有關(guān)扔亥。下面假設(shè)主軸為從左到右场躯。

flex-start(默認(rèn)值):左對(duì)齊

flex-end:右對(duì)齊

center: 居中

space-between:兩端對(duì)齊,項(xiàng)目之間的間隔都相等砸王。

space-around:每個(gè)項(xiàng)目?jī)蓚?cè)的間隔相等推盛。所以,項(xiàng)目之間的間隔比項(xiàng)目與邊框的間隔大一倍谦铃。

5. align-items:定義項(xiàng)目在交叉軸上如何對(duì)齊

align-items 剛好和 justify-content 相反耘成,align-items 決定了內(nèi)容元素在交叉軸上如何對(duì)齊,下面假設(shè)交叉軸從上到下。

flex-start:交叉軸的起點(diǎn)對(duì)齊瘪菌。

flex-end:交叉軸的終點(diǎn)對(duì)齊撒会。

center:交叉軸的中點(diǎn)對(duì)齊。

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

stretch(默認(rèn)值):如果項(xiàng)目未設(shè)置高度或設(shè)為auto诵肛,將占滿整個(gè)容器的高度。

6. align-content:定義了多根軸線的對(duì)齊方式默穴。

注意如果項(xiàng)目只有一根軸線怔檩,該屬性不起作用。

flex-start:與交叉軸的起點(diǎn)對(duì)齊蓄诽。

flex-end:與交叉軸的終點(diǎn)對(duì)齊薛训。

center:與交叉軸的中點(diǎn)對(duì)齊。

space-between:與交叉軸兩端對(duì)齊仑氛,軸線之間的間隔平均分布乙埃。

space-around:每根軸線兩側(cè)的間隔都相等。所以锯岖,軸線之間的間隔比軸線與邊框的間隔大一倍介袜。

stretch(默認(rèn)值):軸線占滿整個(gè)交叉軸。

四出吹、項(xiàng)目(item)的屬性

1. order屬性:定義項(xiàng)目的排列順序遇伞。數(shù)值越小,排列越靠前趋箩,默認(rèn)為0

.item{order: <integer>;}

2. flex-grow屬性:定義項(xiàng)目的放大比例赃额,默認(rèn)為0加派,即如果存在剩余空間叫确,也不放大

.item{flex-grow:<number>;}

flex-grow為零的話則不變化,不能為負(fù)值芍锦。如果所有項(xiàng)目的flex-grow屬性都為1竹勉,則它們將等分剩余空間(如果有的話)。如果一個(gè)項(xiàng)目的flex-grow屬性為2娄琉,其他項(xiàng)目都為1次乓,則前者占據(jù)的剩余空間將比其他項(xiàng)多一倍。

3. flex-shrink屬性:定義了項(xiàng)目的縮小比例孽水,默認(rèn)為1票腰,即如果空間不足,該項(xiàng)目將縮小

.item{flex-shrink:<number>;}

如果所有項(xiàng)目的flex-shrink屬性都為1女气,當(dāng)空間不足時(shí)杏慰,都將等比例縮小。如果一個(gè)項(xiàng)目的flex-shrink屬性為0,其他項(xiàng)目都為1缘滥,則空間不足時(shí)轰胁,前者不縮小。負(fù)值對(duì)該屬性無(wú)效朝扼。

4. flex-basis屬性:定義了在分配多余空間之前赃阀,項(xiàng)目占據(jù)的主軸空間(main size)

瀏覽器根據(jù)這個(gè)屬性,計(jì)算主軸是否有多余空間擎颖。它的默認(rèn)值為auto榛斯,即項(xiàng)目的本來(lái)大小。它可以設(shè)為跟width或height屬性一樣的值搂捧,則項(xiàng)目將占據(jù)固定空間

.item{flex-basis:?<length>| auto;

5. flex屬性:flex-grow,flex-shrink和flex-basis的簡(jiǎn)寫(xiě)

默認(rèn)值為0 1 auto肖抱。后兩個(gè)屬性可選。該屬性有兩個(gè)快捷值:auto(1 1 auto) 和 none (0 0 auto)异旧。

6. 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;}

該屬性可能取6個(gè)值潮针,除了auto术荤,其他都與align-items屬性完全一致。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末每篷,一起剝皮案震驚了整個(gè)濱河市瓣戚,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌焦读,老刑警劉巖子库,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異矗晃,居然都是意外死亡仑嗅,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)张症,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)仓技,“玉大人,你說(shuō)我怎么就攤上這事俗他〔蹦恚” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵兆衅,是天一觀的道長(zhǎng)地沮。 經(jīng)常有香客問(wèn)我颜价,道長(zhǎng),這世上最難降的妖魔是什么诉濒? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任周伦,我火速辦了婚禮,結(jié)果婚禮上未荒,老公的妹妹穿的比我還像新娘专挪。我一直安慰自己,他們只是感情好片排,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布寨腔。 她就那樣靜靜地躺著,像睡著了一般率寡。 火紅的嫁衣襯著肌膚如雪迫卢。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天冶共,我揣著相機(jī)與錄音乾蛤,去河邊找鬼。 笑死捅僵,一個(gè)胖子當(dāng)著我的面吹牛家卖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播庙楚,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼上荡,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了馒闷?” 一聲冷哼從身側(cè)響起酪捡,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎纳账,沒(méi)想到半個(gè)月后逛薇,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡塞祈,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年帅涂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了议薪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡斯议,死狀恐怖醇锚,靈堂內(nèi)的尸體忽然破棺而出哼御,到底是詐尸還是另有隱情坯临,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布恋昼,位于F島的核電站看靠,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏液肌。R本人自食惡果不足惜挟炬,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嗦哆。 院中可真熱鬧谤祖,春花似錦、人聲如沸老速。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)橘券。三九已至额湘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間旁舰,已是汗流浹背缩挑。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鬓梅,地道東北人供置。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像绽快,于是被迫代替她去往敵國(guó)和親芥丧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

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