【歸納】flex布局

今天我大概地學(xué)習(xí)和了解了flex相關(guān)的知識(shí)事富。這次的學(xué)習(xí)是我第一次系統(tǒng)地接觸flex梨与,之前只是聽(tīng)說(shuō)過(guò)捡硅,但是并不知道flex到底是什么一回事。所以在這次學(xué)習(xí)后祈噪,我認(rèn)為把我這次的學(xué)習(xí)內(nèi)容在博客上再進(jìn)行一次歸納行剂,是相當(dāng)必要的。
timg.jpg

說(shuō)到flex布局钳降,在我之前的影響中,只知道這是一種較傳統(tǒng)布局較方便的布局腌巾,這種布局對(duì)我來(lái)說(shuō)是全新的遂填。在flex布局出現(xiàn)之前,我們使用的傳統(tǒng)布局主要有以下幾種:

  1. normal flow 文檔流澈蝙、正常流
  2. float + clear 清除浮動(dòng)
  3. position relative + absolute 相對(duì) + 絕對(duì)定位
  4. display inline-block 橫向布局
  5. 負(fù) margin 擴(kuò)大寬度吓坚、產(chǎn)生位移

這些傳統(tǒng)的布局方式雖然可以滿足我們的很多需求,但是也并不方便灯荧,比如實(shí)現(xiàn)垂直居中礁击。而現(xiàn)在我們就要開(kāi)始接觸flex布局這種新的布局方式了。flex也可稱(chēng)為“彈性布局”逗载,flex布局有以下幾個(gè)特點(diǎn):

  1. 塊級(jí)布局側(cè)重垂直方向哆窿,行內(nèi)布局側(cè)重水平方向。flex布局與方向無(wú)關(guān)
  2. flex布局可以實(shí)現(xiàn)空間自動(dòng)分配厉斟,自動(dòng)對(duì)齊
  3. flex布局適用于簡(jiǎn)單的線性布局挚躯,復(fù)雜的布局則可以使用grid布局

接下來(lái)就將對(duì)flex布局的幾個(gè)重要知識(shí)點(diǎn)進(jìn)行歸納。

flex布局的基本概念

采用flex布局的元素擦秽,稱(chēng)為flex容器(flex container)码荔。它的所有子元素自動(dòng)成為容器成員,稱(chēng)為flex項(xiàng)目(flex item)感挥。


png1.png

如上圖所示缩搅,該flex容器在縱橫有兩根軸,其中橫向的稱(chēng)為主軸(main axis)触幼,縱向的稱(chēng)為側(cè)軸(cross axis)硼瓣。主軸的開(kāi)始位置(與邊框的交叉點(diǎn))叫做main start,結(jié)束位置叫做main end置谦;交叉軸的開(kāi)始位置叫做cross start巨双,結(jié)束位置叫做cross end。子元素默認(rèn)是沿主軸排列的霉祸。子元素在主軸方向的寬度叫做main size筑累,在側(cè)軸方向的高度叫做cross size。

flex container 的屬性

flex container(flex容器)有如下六個(gè)屬性:

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

flex-direction 方向

該屬性主要有以下值:

  • row:將所有子元素排列在一行丝蹭,不會(huì)換行(默認(rèn)值)
  • row-reverse:將所有子元素從右至左排列在一行
  • column:將所有子元素從上往下排列
  • column-reverse:將所有子元素從下往上排列

flex-wrap 換行

該屬性主要有以下值:

  • wrap:換行
  • nowrap:不換行(默認(rèn)值)
  • wrap-reverse:換行慢宗,但是第一行在下方,即反轉(zhuǎn) wrap 排列。

flex-flow 上面兩個(gè)屬性的縮寫(xiě)

默認(rèn)值為row nowrap镜沽,可以以如下方法設(shè)定該屬性:

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

justify-content 主軸方向的對(duì)齊方式

該屬性主要有以下值:

  • space-between:將各子元素排列在一行敏晤,并將行內(nèi)的空間均分在元素之間
  • space-around: 將各子元素排列在一行,并將行內(nèi)的空間分配在元素兩側(cè)
  • flex-start:子元素由主軸起點(diǎn)開(kāi)始排列(默認(rèn)值)
  • flex-end:子元素由主軸終點(diǎn)開(kāi)始排列
  • center:在主軸方向居中

align-items 側(cè)軸方向的對(duì)齊方式

該屬性主要有以下值:

  • stretch:將所有子元素伸展至最大高度缅茉,如果子元素未設(shè)置高度或設(shè)為auto嘴脾,將占滿整個(gè)容器的高度。(默認(rèn)值)
  • flex-start:子元素由側(cè)軸起點(diǎn)開(kāi)始排列
  • flex-end:子元素由側(cè)軸終點(diǎn)開(kāi)始排列
  • center:在側(cè)軸方向居中
  • baseline: 子元素的第一行文字的基線對(duì)齊蔬墩。效果如下圖所示:
png2.png

align-content 多行多列的對(duì)齊方式

該屬性主要有以下值:

  • space-between:將側(cè)軸方向的空間均分在行距中
  • space-around:將側(cè)軸方向的空間分配在每行上下兩側(cè)
  • flex-start:以側(cè)軸起點(diǎn)對(duì)齊
  • flex-end:以側(cè)軸終點(diǎn)對(duì)齊
  • stretch:子元素平均分配側(cè)軸方向的空間译打,伸展排列(默認(rèn)值)

flex item 的屬性

flex item(子元素)有如下六個(gè)屬性:

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

flex-grow 空間足夠時(shí)的擴(kuò)張比例

該屬性默認(rèn)值為0。
如果所有子元素的flex-grow屬性都為1拇颅,則它們將等分剩余空間(如果有的話)奏司。如果一個(gè)子元素的flex-grow屬性為2,其他子元素都為1樟插,則前者占據(jù)的剩余空間將比其他項(xiàng)多一倍韵洋。

flex-shink 空間不足時(shí)的收縮比例

該屬性默認(rèn)值為1。
如果所有項(xiàng)目的flex-shrink屬性都為1黄锤,當(dāng)空間不足時(shí)搪缨,都將等比例縮小。如果一個(gè)項(xiàng)目的flex-shrink屬性為0鸵熟,其他項(xiàng)目都為1勉吻,則空間不足時(shí),前者不縮小旅赢。

flex-basis 子元素的默認(rèn)寬度

flex-basis屬性定義了在分配多余空間之前齿桃,子元素占據(jù)的主軸空間(main size)。瀏覽器根據(jù)這個(gè)屬性煮盼,計(jì)算主軸是否有多余空間短纵。它的默認(rèn)值為auto,即子元素的本來(lái)寬度僵控。

flex 上面三條屬性的縮寫(xiě)

默認(rèn)值為0 1 auto香到。可以以如下方式設(shè)定該屬性:

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

order 子元素排序權(quán)重

數(shù)值越小报破,排列越靠前悠就,默認(rèn)為0。

align-self 自身的排序方式

即不使用父元素決定的對(duì)齊方式充易,自身設(shè)定一個(gè)對(duì)齊方式梗脾。可覆蓋align-items屬性盹靴。默認(rèn)值為auto炸茧,表示繼承父元素的align-items屬性瑞妇,如果沒(méi)有父元素,則等同于stretch梭冠。

使用flex布局的幾個(gè)技巧

flex 布局可以簡(jiǎn)便辕狰、完整、響應(yīng)式地實(shí)現(xiàn)各種頁(yè)面布局控漠。下面就簡(jiǎn)要地記錄幾個(gè)flex布局的技巧

  1. 實(shí)現(xiàn)手機(jī)布局

如果內(nèi)容被修剪蔓倍,需要瀏覽器顯示滾動(dòng)條,以便查看剩余內(nèi)容盐捷,可以使用 over-flow:auto;
實(shí)現(xiàn)手機(jī)上中下布局:

.content{height:100vh;display:flex;flex-direction:column;}
  1. 實(shí)現(xiàn)電腦左中右布局
.content>aside{width:120px;}
.content>main{height:400px;flex:1}
.content>nav{width:100px;}
  1. 完美居中
.parent{
    display:flex;
    justify-content:center;
    align-items:center;
}

以上就是我此次關(guān)于flex學(xué)習(xí)的一些記錄偶翅。可以看出毙驯,這次學(xué)習(xí)是圍繞著阮一峰的一篇關(guān)于flex的博客展開(kāi)的,他的博客對(duì)我此次學(xué)習(xí)flex布局以及此次的flex博客編寫(xiě)起到了一定的幫助灾测。除此之外爆价,我在這里推薦兩個(gè)關(guān)于flex學(xué)習(xí)的小游戲,寓教于樂(lè)媳搪,十分有趣铭段。

  1. Flex 布局教程:語(yǔ)法篇-阮一峰的網(wǎng)絡(luò)日志
  2. 青蛙小游戲
  3. 塔防小游戲

博客原地址:http://franko.top/1809/20180925A/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市秦爆,隨后出現(xiàn)的幾起案子序愚,更是在濱河造成了極大的恐慌,老刑警劉巖等限,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件爸吮,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡望门,警方通過(guò)查閱死者的電腦和手機(jī)形娇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)筹误,“玉大人桐早,你說(shuō)我怎么就攤上這事〕簦” “怎么了哄酝?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)祷膳。 經(jīng)常有香客問(wèn)我陶衅,道長(zhǎng),這世上最難降的妖魔是什么直晨? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任万哪,我火速辦了婚禮侠驯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘奕巍。我一直安慰自己吟策,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布的止。 她就那樣靜靜地躺著檩坚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪诅福。 梳的紋絲不亂的頭發(fā)上匾委,一...
    開(kāi)封第一講書(shū)人閱讀 49,764評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音氓润,去河邊找鬼赂乐。 笑死,一個(gè)胖子當(dāng)著我的面吹牛咖气,可吹牛的內(nèi)容都是我干的挨措。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼崩溪,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼浅役!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起伶唯,我...
    開(kāi)封第一講書(shū)人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤觉既,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后乳幸,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體瞪讼,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年粹断,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了尝艘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡姿染,死狀恐怖背亥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情悬赏,我是刑警寧澤狡汉,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站闽颇,受9級(jí)特大地震影響盾戴,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜兵多,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一尖啡、第九天 我趴在偏房一處隱蔽的房頂上張望橄仆。 院中可真熱鬧,春花似錦衅斩、人聲如沸盆顾。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)您宪。三九已至,卻和暖如春奠涌,著一層夾襖步出監(jiān)牢的瞬間宪巨,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工溜畅, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留捏卓,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓慈格,卻偏偏與公主長(zhǎng)得像怠晴,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子峦椰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

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