CSS 浮動(dòng)布局放棄float,擁抱flex(詳解)

CSS 浮動(dòng)布局放棄float棘脐,擁抱flex(詳解)

博客說(shuō)明

文章所涉及的資料來(lái)自互聯(lián)網(wǎng)整理和個(gè)人總結(jié)斜筐,意在于個(gè)人學(xué)習(xí)和經(jīng)驗(yàn)匯總,如有什么地方侵權(quán)蛀缝,請(qǐng)聯(lián)系本人刪除顷链,謝謝!

說(shuō)明

在寫(xiě)前端代碼的時(shí)候屈梁,寫(xiě)一排的float:left, float: right嗤练,最后再來(lái)個(gè)clear:both;有的時(shí)候一旦忘記清除浮動(dòng)榛了,那么頁(yè)面就糊了。

就是吃了float的虧煞抬,代碼寫(xiě)得多霜大,還容易吃虧。所以目光旁移一下革答,看到了flex战坤。

Flex布局

Flex 稱為彈性布局,它為盒狀模型提供了最大的靈活性残拐。任何一個(gè)容器都可以指定為 Flex 布局途茫。使用了flex的元素,稱為flex容器溪食。里面的子元素被稱為項(xiàng)目囊卜,項(xiàng)目的floatclearvertical-align屬性將失效错沃。

// Flex 布局
.box{
  display: flex;
}


// 行內(nèi)元素使用 Flex 布局
.box{
  display: inline-flex;
}


// Webkit 內(nèi)核的瀏覽器栅组,必須加上`-webkit`前綴
.box{
  display: -webkit-flex; /* Safari */
  display: flex;
}

容器和項(xiàng)目

既然分為了容器和項(xiàng)目,那么大致就是如下的關(guān)系捎废,主要記錄一下容器屬性和項(xiàng)目屬性笑窜。

image-20210714190524897

容器屬性

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

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

取值:row(默認(rèn)) | row-reverse | column | column-reverse

  • row(默認(rèn)值):主軸為水平方向,起點(diǎn)在左端登疗。
  • row-reverse:主軸為水平方向排截,起點(diǎn)在右端。
  • column:主軸為垂直方向辐益,起點(diǎn)在上沿断傲。
  • column-reverse:主軸為垂直方向,起點(diǎn)在下沿智政。
image-20210713153348588
.box {
  flex-direction: row | row-reverse | column | column-reverse;
}
flex-wrap屬性

控制項(xiàng)目是否換行

取值:nowrap(默認(rèn)) | wrap | wrap-reverse

  • nowrap(默認(rèn)值):不換行认罩,等分容器。
  • wrap:換行续捂,項(xiàng)目不會(huì)等分容器寬度垦垂,而是根據(jù)自身寬度進(jìn)行排列,如果超出父容器寬度則自然換行牙瓢。
  • wrap-reverse:與wrap效果相反劫拗。
image-20210713173029917
.box{
  flex-wrap: nowrap | wrap | wrap-reverse;
}
flex-flow屬性

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

.box {
  flex-flow: <flex-direction> <flex-wrap>;
}
justify-content屬性

控制項(xiàng)目在橫軸的對(duì)齊方式

取值:flex-start(默認(rèn)) | flex-end | center | space-between | space-around | space-evenly;

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

  • center:居中。

  • flex-end:右對(duì)齊。

  • space-between:左右兩端對(duì)齊酒繁,即左右兩側(cè)項(xiàng)目都緊貼容器滓彰,且項(xiàng)目之間間距相等。

  • space-around:項(xiàng)目之間間距為左右兩側(cè)項(xiàng)目到容器間距的2倍州袒。

  • space-evenly:為項(xiàng)目之間間距與項(xiàng)目與容器間距相等揭绑。

image-20210713174909404
.box {
  justify-content: flex-start | flex-end | center | space-between | space-around | space-evenly;
}
align-items屬性

控制項(xiàng)目在縱軸排列方式

取值:flex-start | flex-end | center | baseline | stretch(默認(rèn))

  • 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è)容器的高度。
image-20210713175802415
.box {
  align-items: flex-start | flex-end | center | baseline | stretch;
}
align-content屬性

控制多行項(xiàng)目的對(duì)齊方式撰筷,如果項(xiàng)目只有一行則不會(huì)起作用

取值:flex-start | flex-end | center | space-between | space-around | space-evenly | stretch(默認(rèn));

  • flex-start:與交叉軸的起點(diǎn)對(duì)齊陈惰。
  • flex-end:與交叉軸的終點(diǎn)對(duì)齊。
  • center:與交叉軸的中點(diǎn)對(duì)齊毕籽。
  • space-between:與交叉軸兩端對(duì)齊抬闯,軸線之間的間隔平均分布。
  • space-around:每根軸線兩側(cè)的間隔都相等关筒。所以溶握,軸線之間的間隔比軸線與邊框的間隔大一倍。
  • stretch(默認(rèn)值):軸線占滿整個(gè)交叉軸蒸播。
  • space-evenly:為項(xiàng)目之間間距與項(xiàng)目與容器間距相等睡榆。
image-20210713181735105
.box {
  align-content: flex-start | flex-end | center | space-between | space-around | stretch | space-evenly;
}

項(xiàng)目屬性

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

屬性定義項(xiàng)目的排列順序。數(shù)值越小袍榆,排列越靠前胀屿,默認(rèn)為0。

.item {
  order: <integer>;
}
image-20210713184220502
flex-grow屬性

性定義項(xiàng)目的放大比例包雀,默認(rèn)為0宿崭,即如果存在剩余空間,也不放大才写。

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

flex-shrink屬性定義了項(xiàng)目的縮小比例葡兑,默認(rèn)為1,即如果空間不足赞草,該項(xiàng)目將縮小讹堤。flex-shrink屬性為0時(shí),其他項(xiàng)目都為1房资,則空間不足時(shí)蜕劝,flex-shrink不縮小。

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

默認(rèn)auto時(shí),項(xiàng)目會(huì)保持默認(rèn)寬度岖沛,或者以width為自身的寬度

如果設(shè)置了flex-basis會(huì)覆蓋widtn屬性暑始。

.item {
  flex-basis: <length> | auto; /* default auto */
}
flex屬性

flex屬性是flex-grow, flex-shrinkflex-basis的簡(jiǎn)寫(xiě),默認(rèn)值為0 1 auto婴削。后兩個(gè)屬性可選廊镜。

.item {
  flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
}
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;
}

感謝

萬(wàn)能的網(wǎng)絡(luò)

菜鳥(niǎo)教程

阮一峰的flex布局

以及勤勞的自己,個(gè)人博客衡楞,GitHub

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末吱雏,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子瘾境,更是在濱河造成了極大的恐慌歧杏,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,270評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件迷守,死亡現(xiàn)場(chǎng)離奇詭異犬绒,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)兑凿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)凯力,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人急膀,你說(shuō)我怎么就攤上這事沮协。” “怎么了卓嫂?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,630評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵慷暂,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我晨雳,道長(zhǎng)行瑞,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,906評(píng)論 1 295
  • 正文 為了忘掉前任餐禁,我火速辦了婚禮血久,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘帮非。我一直安慰自己氧吐,他們只是感情好讹蘑,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著筑舅,像睡著了一般座慰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上翠拣,一...
    開(kāi)封第一講書(shū)人閱讀 51,718評(píng)論 1 305
  • 那天版仔,我揣著相機(jī)與錄音,去河邊找鬼误墓。 笑死蛮粮,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的谜慌。 我是一名探鬼主播然想,決...
    沈念sama閱讀 40,442評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼欣范!你這毒婦竟也來(lái)了又沾?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,345評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤熙卡,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后励饵,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體驳癌,經(jīng)...
    沈念sama閱讀 45,802評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評(píng)論 3 337
  • 正文 我和宋清朗相戀三年役听,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了颓鲜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,117評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡典予,死狀恐怖甜滨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情瘤袖,我是刑警寧澤衣摩,帶...
    沈念sama閱讀 35,810評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站捂敌,受9級(jí)特大地震影響艾扮,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜占婉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評(píng)論 3 331
  • 文/蒙蒙 一泡嘴、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧逆济,春花似錦酌予、人聲如沸磺箕。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,011評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)松靡。三九已至,卻和暖如春莱褒,著一層夾襖步出監(jiān)牢的瞬間击困,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,139評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工广凸, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留阅茶,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,377評(píng)論 3 373
  • 正文 我出身青樓谅海,卻偏偏與公主長(zhǎng)得像脸哀,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子扭吁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評(píng)論 2 355

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

  • Flex布局又名彈性布局撞蜂,相比f(wàn)loat+position布局,具有很強(qiáng)大的靈活性侥袜,而且目前已經(jīng)得到了所有瀏覽器的...
    閏土在流浪閱讀 2,594評(píng)論 0 4
  • 第一部分: 前言 Flex 是 Flexible Box 的縮寫(xiě)蝌诡,意為"彈性布局",用來(lái)為盒狀模型提供最大的靈活性...
    奔云閱讀 979評(píng)論 0 0
  • 前言:之前我寫(xiě)過(guò)的一篇博客介紹CSS常用的幾種布局方式枫吧,PC端最常見(jiàn)的就是浮動(dòng)布局和flex布局浦旱,而在移動(dòng)端,由于...
    EnochQin閱讀 651評(píng)論 0 7
  • 本文目錄 1.什么是Flex布局 2.容器的常用屬性 3.項(xiàng)目的一些屬性 4.實(shí)戰(zhàn)應(yīng)用:兩欄自適應(yīng) 1.什么是Fl...
    前端輝羽閱讀 502評(píng)論 0 4
  • 上一篇 介紹了傳統(tǒng)的布局解決方案九杂,基于 盒模型颁湖,依靠 display 屬性 + position 屬性 + fl...
    leown閱讀 667評(píng)論 0 10