前端布局神器display:flex&justify-content&align-items

image

2009年摹量,W3C提出了一種新的方案--Flex布局反砌,可以簡便赢织、完整揭鳞、響應式地實現各種頁面布局。目前已得到所有現在瀏覽器的支持缘圈。

image

一劣光、Flex布局是什么?

Flex是Flexible Box的縮寫糟把,翻譯成中文就是“彈性盒子”绢涡,用來為盒裝模型提供最大的靈活性。任何一個容器都可以指定為Flex布局遣疯。

當然雄可,行內元素也可以使用Flex布局。

二缠犀、基本概念

采用Flex布局的元素数苫,被稱為Flex容器(flex container),簡稱“容器”辨液。其所有子元素自動成為容器成員虐急,成為Flex項目(Flex item),簡稱“項目”滔迈。

image

容器默認存在兩根主軸:水平方向主軸(main axis)和垂直方向交叉軸(cross axis)止吁,默認項目按主軸排列被辑。

  • main start/main end:主軸開始位置/結束位置;
  • cross start/cross end:交叉軸開始位置/結束位置敬惦;
  • main size/cross size:單個項目占據主軸/交叉軸的空間盼理;

三、容器屬性

設置在容器上的屬性有6種俄删。

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

flex-direction屬性:決定主軸的方向(即項目的排列方向)

  • row(默認):主軸水平方向榜揖,起點在左端;
  • row-reverse:主軸水平方向抗蠢,起點在右端;
  • column:主軸垂直方向思劳,起點在上邊沿迅矛;
  • column-reserve:主軸垂直方向,起點在下邊沿潜叛。
image

flex-wrap屬性:定義換行情況

默認情況下秽褒,項目都排列在一條軸線上,但有可能一條軸線排不下威兜。

image
  • nowrap(默認):不換行销斟;

    image
  • wrap:換行,第一行在上方椒舵;

    image
  • wrap-reverse:換行蚂踊,第一行在下方。

    image

flex-flow屬性:flex-direction和flex-wrap的簡寫笔宿,默認row nowrap

justify-content屬性:定義項目在主軸上的對齊方式犁钟。

對齊方式與軸的方向有關,本文中假設主軸從左到右泼橘。

  • flex-start(默認值):左對齊涝动;

    image
  • flex-end:右對齊;

    image
  • center:居中炬灭;

image
  • space-between:兩端對齊醋粟,項目之間間隔相等;
image
  • space-around:每個項目兩側的間隔相等重归,即項目之間的間隔比項目與邊框的間隔大一倍米愿。
image

align-items屬性:定義在交叉軸上的對齊方式

對齊方式與交叉軸的方向有關,假設交叉軸從下到上提前。

  • flex-start:起點對齊吗货;
image
  • flex-end:終點對齊;
image
  • center:中點對齊狈网;
image
  • baseline:項目的第一行文字的基線對齊宙搬;
image
  • stretch(默認值):如果項目未設置高度或設為auto笨腥,將占滿整個容器的高度。
image

align-content屬性:定義多根軸線的對齊方式

如果項目只有一根軸線勇垛,該屬性不起作用脖母。
所以,容器必須設置flex-wrap:···闲孤;

  • flex-start:與交叉軸的起點對齊谆级;
image
  • flex-end:與交叉軸的終點對齊;
image
  • center:與交叉軸的中點對齊讼积;
image
  • space-between:與交叉軸的兩端對齊肥照,軸線之間的間隔平均分布;
image
  • space-around:每根軸線兩側的間隔相等勤众,即軸線之間的間隔比軸線與邊框的間隔大一倍舆绎;
image
  • stretch(默認值):軸線占滿整個交叉軸。
image

有意思的是们颜,當你不給項目設置高度但是給容器設置align-content不為stretch時吕朵,同一軸線上的項目的高度將等于項目中高度最高的項目。

image

四窥突、項目的屬性

設置在項目上的屬性也有6個努溃。

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

order屬性:定義項目的排列順序。

數值越小阻问,排列越靠前梧税,默認為0,可以是負值则拷。

image

flex-grow屬性:定義項目的放大比例

默認值為0贡蓖,即如果空間有剩余,也不放大煌茬。
可以是小數斥铺,按比例占據剩余空間。

image

若所有項目的flex-grow的數值都相同坛善,則等分剩余空間

image

若果有一個項目flex-grow為2晾蜘,其余都為1,則該項目占據剩余空間是其余的2倍

image

flex-shrink屬性:定義項目的縮小比例

默認值都為1眠屎,即如果空間不足將等比例縮小剔交。
如果有一個項目的值為0,其他項目為1改衩,當空間不足時岖常,該項目不縮小。
負值對該屬性無效葫督,容器不應該設置flex-wrap竭鞍。

如果一個項目設置flex-shrink為0板惑;而其他項目都為1,則空間不足時偎快,該項目不縮小冯乘。

image

如果所有項目都為0,則當空間不足時晒夹,項目撐破容器而溢出裆馒。

image

如果設置項目的flex-shrink不為0的非負數效果同設置為1。

image

flex-basis屬性:定義在分配多余空間之前丐怯,項目占據的主軸空間喷好。

默認值為auto,瀏覽器根據此屬性檢查主軸是否有多余空間读跷。

注意設置的flex-basis是分配多余空間之前項目占據的主軸空間绒窑,如果空間不足則默認情況下該項目也會縮小。

image
image

flex屬性是flex-grow舔亭,flex-shrink和flex-basis的簡寫

默認值為0 1 auto,第一個屬性必須蟀俊,后兩個屬性可選钦铺。

  • 可以用 flex:auto; 代替 flex: 1 1 auto;
  • 可以用 flex: none;代替 flex: 0 0 auto肢预;

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

原文:前端布局神器display:flex

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末矛洞,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子烫映,更是在濱河造成了極大的恐慌沼本,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件锭沟,死亡現場離奇詭異抽兆,居然都是意外死亡,警方通過查閱死者的電腦和手機族淮,發(fā)現死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門辫红,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人祝辣,你說我怎么就攤上這事贴妻。” “怎么了蝙斜?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵名惩,是天一觀的道長。 經常有香客問我孕荠,道長娩鹉,這世上最難降的妖魔是什么攻谁? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮底循,結果婚禮上巢株,老公的妹妹穿的比我還像新娘。我一直安慰自己熙涤,他們只是感情好阁苞,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著祠挫,像睡著了一般那槽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上等舔,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天骚灸,我揣著相機與錄音,去河邊找鬼慌植。 笑死甚牲,一個胖子當著我的面吹牛,可吹牛的內容都是我干的蝶柿。 我是一名探鬼主播丈钙,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼交汤!你這毒婦竟也來了雏赦?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤芙扎,失蹤者是張志新(化名)和其女友劉穎星岗,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體戒洼,經...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡俏橘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了圈浇。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片敷矫。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖汉额,靈堂內的尸體忽然破棺而出曹仗,到底是詐尸還是另有隱情,我是刑警寧澤蠕搜,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布怎茫,位于F島的核電站,受9級特大地震影響,放射性物質發(fā)生泄漏轨蛤。R本人自食惡果不足惜蜜宪,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望祥山。 院中可真熱鬧圃验,春花似錦、人聲如沸缝呕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽供常。三九已至摊聋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間栈暇,已是汗流浹背麻裁。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留源祈,地道東北人煎源。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像香缺,于是被迫代替她去往敵國和親薪夕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348