CSS Flex布局

歡迎閱讀阮一峰老師的原文,本篇為學習筆記

1. Flex布局

Flex是Flexible Box 的縮寫铐姚,意為彈性布局锣吼。
任何一個容器都可以指定為Flex布局:

.box{
  display: flex;
}

行內元素也可以使用Flex布局:

.box{
  display: inline-flex;
}

暫時不明白的點:
Webkit的內核瀏覽器,必須加上-webkit前綴丐怯。

.box{
 display: -webkit-flex; /* Safari */
 display: flex;
}

2. 基本概念

采用Flex布局的元素名挥,稱為Flex容器(flex container)霜大。它的所有子元素自動成為容器成員,稱為Flex項目(flex item)捡絮。

image.png

容器默認存在兩根軸:水平的主軸(main axis)垂直的交叉軸(cross axis)燃领。
主軸的開始位置(與邊框的交叉點)叫做main start,結束位置叫做main end锦援;
交叉軸的開始位置叫做cross start猛蔽,結束位置叫做cross end

項目默認沿主軸排列灵寺。單個項目占據(jù)的主軸空間叫main size曼库,占據(jù)的交叉空間叫做cross size

3.容器的屬性

容器有6個屬性:

flex-direction: // 確定主軸的方向(即flex item的排列方向)略板。

flex-wrap: // 確定換行的方式毁枯。

flex-flow:// flex-direction與flex-wrap的簡寫,默認值 row nowrap.

justify-content: // 確定flex item在主軸上的對齊方式叮称。

align-items: // 確定flex item在垂直的交叉軸上對齊方式种玛。

align-content: // 確定多根軸線的對齊方式藐鹤。如果只有一根軸線,該屬性不起作用赂韵。

3.1 flex-direction:主軸的方向

row(默認值): 主軸為水平方向娱节,從左到右排列,所有 flex item 排成一行祭示,默認寬度不夠時肄满,會撐大寬度。

column: 主軸方向為垂直方向质涛,從上到下排列稠歉,所有item排成一列。

row-reverse: 主軸為水平方向汇陆,從右到左排列怒炸,所有 flex item 排成一行,默認寬度不夠時毡代,會撐大寬度横媚。

column-reverse:主軸方向為垂直方向,從下到上排列月趟,所有item排成一列灯蝴。

3.2 flex-wrap:一條軸線放不下時,如何換行

nowrap(默認值) :不換行孝宗。

wrap: 換行穷躁,第一行在上方。

wrap-reverse:換行因妇,第一行在下方问潭。

這里說明一下,如果主軸方向為垂直方向婚被,設置wrapwrap-reverse其實沒有多大意義狡忙,我測試了一下,設置為wrap是flex item 在左邊址芯,從上到下一列灾茁。設置為wrap-reverse就變?yōu)橛疫吜耍彩且涣泄日āV饕蚴钱敵銎聊伙@示的高度時北专,會有滑動條出現(xiàn),增大容器的高度旬陡。如果指定容器的高度拓颓,換行則是左右了。

3.3 flex-flow

flex-flowflex-direction屬性和flex-wrap屬性的簡寫形式描孟,默認值為row nowrap

3.4 justify-content:定義flex item在主軸上的對齊方式

flex-start(默認):左對齊

flex-end: 右對齊

center: 居中

space-between:兩端對齊驶睦,項目之間的間隔都相等砰左。

space-around:兩個item兩側的間隔相等。

3.5 align-items: 定義flex item在交叉軸上如何對齊

flex-start:交叉軸的起點對齊场航。

flex-end:交叉軸的終點對齊缠导。

center:交叉軸的中點對齊。

baseline:flex item的第一行文字的基線對齊旗闽。

stretch(默認值):如果flex item未設置高度,或者設置為auto蜜另,將占滿整個容器的高度适室。

3.6 align-content:定義多根軸線的對齊方式,如果只有一根軸線举瑰,該屬性不生效

flex-start:與交叉軸的起點對齊捣辆。

flex-end:與交叉軸的終點對齊。

center:與交叉軸的中點對齊此迅。

space-between:與交叉軸兩端對齊汽畴,軸線之間的間隔平均分布。

space-around:每根軸線兩側的間隔都相等耸序。所以忍些,軸線之間的間隔比軸線與邊框的間隔大一倍。

stretch(默認值):軸線占滿整個交叉軸坎怪。

4. flex item的屬性

order:定義item的排列順序罢坝。默認為0,數(shù)值越小搅窿,排列越考前嘁酿。

flex-grow:item的權重,即放大比例男应。默認為0闹司,即存在剩余空間也不放大。

flex-shrink:item的縮小比例沐飘。默認為1游桩,即如果空間不足,將縮小耐朴。  如果所有的item的flex-shrink都為1众弓,當空間不足時,將等比例縮小隔箍。負值對該屬性無效谓娃。flex-shrink為0時,將不縮小蜒滩。

flex-basis:定義分配多余空間之前滨达,item占據(jù)主軸的空間奶稠。默認值為auto,即本身的大小捡遍⌒慷可以設置為跟width或height一樣的值,即item將占據(jù)固定空間画株。

flex:是flex-grow辆飘,flex-shrink和flex-basis的簡寫,默認值為 0 1 auto谓传。 兩個快捷鍵 auto(1 1 auto)和none(0 0 auto)蜈项。

align-self:允許單個item與其他項目有不一樣的對齊方式,可以覆蓋align-items屬性续挟,默認值為auto紧卒,表示繼承父元素的align-items屬性,如果沒有父元素诗祸,則等同于stretch跑芳。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末据德,一起剝皮案震驚了整個濱河市眠冈,隨后出現(xiàn)的幾起案子糯彬,更是在濱河造成了極大的恐慌巫橄,老刑警劉巖蜗元,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件粱坤,死亡現(xiàn)場離奇詭異抄肖,居然都是意外死亡庄岖,警方通過查閱死者的電腦和手機脖含,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門罪塔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人养葵,你說我怎么就攤上這事征堪。” “怎么了关拒?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵佃蚜,是天一觀的道長。 經(jīng)常有香客問我着绊,道長谐算,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任归露,我火速辦了婚禮洲脂,結果婚禮上,老公的妹妹穿的比我還像新娘剧包。我一直安慰自己恐锦,他們只是感情好往果,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著一铅,像睡著了一般陕贮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上潘飘,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天肮之,我揣著相機與錄音,去河邊找鬼卜录。 笑死戈擒,一個胖子當著我的面吹牛,可吹牛的內容都是我干的暴凑。 我是一名探鬼主播峦甩,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼赘来,長吁一口氣:“原來是場噩夢啊……” “哼现喳!你這毒婦竟也來了?” 一聲冷哼從身側響起犬辰,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤嗦篱,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后幌缝,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體灸促,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年涵卵,在試婚紗的時候發(fā)現(xiàn)自己被綠了浴栽。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡轿偎,死狀恐怖典鸡,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情坏晦,我是刑警寧澤萝玷,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站昆婿,受9級特大地震影響球碉,放射性物質發(fā)生泄漏。R本人自食惡果不足惜仓蛆,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一睁冬、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧看疙,春花似錦痴突、人聲如沸搂蜓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽帮碰。三九已至,卻和暖如春拾积,著一層夾襖步出監(jiān)牢的瞬間殉挽,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工拓巧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留斯碌,地道東北人。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓肛度,卻偏偏與公主長得像傻唾,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子承耿,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內容

  • Flex布局是Css3中新加入的額外布局系統(tǒng)冠骄。傳統(tǒng)布局基于盒模型,依賴“display”加袋、“position”凛辣、“...
    饑人谷_Pizza閱讀 2,410評論 0 2
  • 1.flex布局的兼容性寫法 關于flex布局的兼容性,參考flex兼容性 .flex{ display:-web...
    前端喵閱讀 944評論 0 0
  • H5移動端知識點總結 閱讀目錄 移動開發(fā)基本知識點 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇閱讀 4,501評論 0 26
  • 移動開發(fā)基本知識點 一.使用rem作為單位 html { font-size: 100px; } @media(m...
    橫沖直撞666閱讀 3,472評論 0 6
  • 桐花爛漫閱讀 214評論 0 0