Flex 布局教程(二):實(shí)例篇

上一篇文章介紹了Flex布局的語法竟痰,今天介紹常見布局的Flex寫法。

你會(huì)看到硬霍,不管是什么布局帜慢,F(xiàn)lex往往都可以幾行命令搞定。

我只列出代碼唯卖,詳細(xì)的語法解釋請(qǐng)查閱《Flex布局教程:語法篇》粱玲。我的主要參考資料是Landon Schropp的文章和Solved by Flexbox

一耐床、骰子的布局

骰子的一面密幔,最多可以放置9個(gè)點(diǎn)。

下面撩轰,就來看看Flex如何實(shí)現(xiàn)胯甩,從1個(gè)點(diǎn)到9個(gè)點(diǎn)的布局。你可以到codepen查看Demo堪嫂。

如果不加說明偎箫,本節(jié)的HTML模板一律如下。

上面代碼中皆串,div元素(代表骰子的一個(gè)面)是Flex容器淹办,span元素(代表一個(gè)點(diǎn))是Flex項(xiàng)目。如果有多個(gè)項(xiàng)目恶复,就要添加多個(gè)span元素怜森,以此類推。

1.1 單項(xiàng)目

首先谤牡,只有左上角1個(gè)點(diǎn)的情況副硅。Flex布局默認(rèn)就是首行左對(duì)齊,所以一行代碼就夠了翅萤。

.box{display:flex;}

設(shè)置項(xiàng)目的對(duì)齊方式恐疲,就能實(shí)現(xiàn)居中對(duì)齊和右對(duì)齊。

.box{display:flex;justify-content:center;}

.box{display:flex;justify-content:flex-end;}

設(shè)置交叉軸對(duì)齊方式,可以垂直移動(dòng)主軸培己。

.box{display:flex;align-items:center;}

.box{display:flex;justify-content:center;align-items:center;}

.box{display:flex;justify-content:center;align-items:flex-end;}

.box{display:flex;justify-content:flex-end;align-items:flex-end;}

1.2 雙項(xiàng)目

.box{display:flex;justify-content:space-between;}

.box{display:flex;flex-direction:column;justify-content:space-between;}

.box{display:flex;flex-direction:column;justify-content:space-between;align-items:center;}

.box{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;}

.box{display:flex;}.item:nth-child(2){align-self:center;}

.box{display:flex;justify-content:space-between;}.item:nth-child(2){align-self:flex-end;}

1.3 三項(xiàng)目

.box{display:flex;}.item:nth-child(2){align-self:center;}.item:nth-child(3){align-self:flex-end;}

1.4 四項(xiàng)目

.box{display:flex;flex-wrap:wrap;justify-content:flex-end;align-content:space-between;}

HTML代碼如下碳蛋。

CSS代碼如下。

.box{display:flex;flex-wrap:wrap;align-content:space-between;}.column{flex-basis:100%;display:flex;justify-content:space-between;}

1.5 六項(xiàng)目

.box{display:flex;flex-wrap:wrap;align-content:space-between;}

.box{display:flex;flex-direction:column;flex-wrap:wrap;align-content:space-between;}

HTML代碼如下省咨。

CSS代碼如下肃弟。

.box{display:flex;flex-wrap:wrap;}.row{flex-basis:100%;display:flex;}.row:nth-child(2){justify-content:center;}.row:nth-child(3){justify-content:space-between;}

1.6 九項(xiàng)目

.box{display:flex;flex-wrap:wrap;}

二、網(wǎng)格布局

2.1 基本網(wǎng)格布局

最簡(jiǎn)單的網(wǎng)格布局茸炒,就是平均分布愕乎。在容器里面平均分配空間阵苇,跟上面的骰子布局很像壁公,但是需要設(shè)置項(xiàng)目的自動(dòng)縮放。

HTML代碼如下绅项。

.........

CSS代碼如下紊册。

.Grid{display:flex;}.Grid-cell{flex:1;}

2.2 百分比布局

某個(gè)網(wǎng)格的寬度為固定的百分比,其余網(wǎng)格平均分配剩余的空間快耿。

HTML代碼如下囊陡。

.........

.Grid{display:flex;}.Grid-cell{flex:1;}.Grid-cell.u-full{flex:0 0 100%;}.Grid-cell.u-1of2{flex:0 0 50%;}.Grid-cell.u-1of3{flex:0 0 33.3333%;}.Grid-cell.u-1of4{flex:0 0 25%;}

三、圣杯布局

圣杯布局(Holy Grail Layout)指的是一種最常見的網(wǎng)站布局掀亥。頁面從上到下撞反,分成三個(gè)部分:頭部(header),軀干(body)搪花,尾部(footer)遏片。其中軀干又水平分成三欄,從左到右為:導(dǎo)航撮竿、主欄吮便、副欄。

HTML代碼如下幢踏。

...............

CSS代碼如下髓需。

.HolyGrail{display:flex;min-height:100vh;flex-direction:column;}header,

footer{flex:1;}.HolyGrail-body{display:flex;flex:1;}.HolyGrail-content{flex:1;}.HolyGrail-nav, .HolyGrail-ads{/* 兩個(gè)邊欄的寬度設(shè)為12em */flex:0 0 12em;}.HolyGrail-nav{/* 導(dǎo)航放到最左邊 */order:-1;}

如果是小屏幕,軀干的三欄自動(dòng)變?yōu)榇怪悲B加房蝉。

@media (max-width:768px){.HolyGrail-body{flex-direction:column;flex:1;}.HolyGrail-nav,

.HolyGrail-ads,

.HolyGrail-content{flex:auto;}}

四僚匆、輸入框的布局

我們常常需要在輸入框的前方添加提示,后方添加按鈕搭幻。

HTML代碼如下咧擂。

......

CSS代碼如下。

.InputAddOn{display:flex;}.InputAddOn-field{flex:1;}

五粗卜、懸掛式布局

有時(shí)屋确,主欄的左側(cè)或右側(cè),需要添加一個(gè)圖片欄。

HTML代碼如下攻臀。

...

CSS代碼如下焕数。

.Media{display:flex;align-items:flex-start;}.Media-figure{margin-right:1em;}.Media-body{flex:1;}

六、固定的底欄

有時(shí)刨啸,頁面內(nèi)容太少堡赔,無法占滿一屏的高度,底欄就會(huì)抬高到頁面的中間设联。這時(shí)可以采用Flex布局善已,讓底欄總是出現(xiàn)在頁面的底部。

HTML代碼如下离例。

.........

CSS代碼如下换团。

.Site{display:flex;min-height:100vh;flex-direction:column;}.Site-content{flex:1;}

七,流式布局

每行的項(xiàng)目數(shù)固定宫蛆,會(huì)自動(dòng)分行艘包。

CSS的寫法。

.parent{width:200px;height:150px;background-color:black;display:flex;flex-flow:row wrap;align-content:flex-start;}.child{box-sizing:border-box;background-color:white;flex:0 0 25%;height:50px;border:1px solid red;}

來自:阮一峰的網(wǎng)絡(luò)日志

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末耀盗,一起剝皮案震驚了整個(gè)濱河市想虎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌叛拷,老刑警劉巖舌厨,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異忿薇,居然都是意外死亡裙椭,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門煌恢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來骇陈,“玉大人,你說我怎么就攤上這事瑰抵∧愦疲” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵二汛,是天一觀的道長(zhǎng)婿崭。 經(jīng)常有香客問我,道長(zhǎng)肴颊,這世上最難降的妖魔是什么氓栈? 我笑而不...
    開封第一講書人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮婿着,結(jié)果婚禮上授瘦,老公的妹妹穿的比我還像新娘醋界。我一直安慰自己,他們只是感情好提完,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開白布形纺。 她就那樣靜靜地躺著,像睡著了一般徒欣。 火紅的嫁衣襯著肌膚如雪逐样。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評(píng)論 1 285
  • 那天打肝,我揣著相機(jī)與錄音脂新,去河邊找鬼。 笑死粗梭,一個(gè)胖子當(dāng)著我的面吹牛争便,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播楼吃,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼始花,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了孩锡?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤亥贸,失蹤者是張志新(化名)和其女友劉穎躬窜,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體炕置,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡荣挨,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了朴摊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片默垄。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖甚纲,靈堂內(nèi)的尸體忽然破棺而出口锭,到底是詐尸還是另有隱情,我是刑警寧澤介杆,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布鹃操,位于F島的核電站,受9級(jí)特大地震影響春哨,放射性物質(zhì)發(fā)生泄漏荆隘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一赴背、第九天 我趴在偏房一處隱蔽的房頂上張望椰拒。 院中可真熱鬧晶渠,春花似錦、人聲如沸燃观。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽仪壮。三九已至憨颠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間积锅,已是汗流浹背爽彤。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留缚陷,地道東北人适篙。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像箫爷,于是被迫代替她去往敵國(guó)和親嚷节。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

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