Flex 彈性布局

勾笆,? ? flex 布局至今為止還是一個令我十分頭疼的布局敌蚜,內容不多,不難窝爪,可是我就是不會(哭)弛车。我不會不是因為它游多難齐媒,只是用慣了浮動布局,還不好適應這種百分比布局纷跛。歸根結底喻括,flex布局還是實現(xiàn)響應式頁面以及屏幕適配的利器,同時也是移動Web 頁面最常用的布局方式之一贫奠。

? ? Flex概述:

????flex 布局是 Flexible Box 的縮寫唬血,也可以稱為彈性布局或者彈性盒模型。flex布局最大的特點就是無需對元素設置固定的寬和高叮阅,其位置和大小會隨著父元素或者瀏覽器的狀態(tài)自動適應刁品,同時還新增了水平居中和垂直居中等方案。任何一個網(wǎng)頁元素都可以指定為Flex 布局浩姥,這個通常叫做容器元素。下面來對flex布局的屬性做一個總結:

? ? 一状您、flex 容器屬性:

? ? 對于某個容器屬性(通常稱父盒子)只要聲明了 display:flex勒叠,那么這個元素就稱為彈性容器,一個彈性容器有以下特性:

?(1)每個彈性容器都有兩根軸:主軸和交叉軸膏孟,兩軸之間成 90 度眯分,在默認情況下,水平方向為主軸柒桑,垂直方向為交叉軸弊决;? ?

(2)每根軸都有起點和終點,這對于后續(xù)元素的對齊屬性非常重要魁淳;? ?

(3)彈性容器中的所有子元素稱為彈性元素飘诗,彈性元素永遠沿主軸排列;? ?

(4)彈性元素也可以通過設置 display:flex 稱為另一個彈性容器界逛,形成嵌套關系昆稿。因此一個元素既可以是彈性容器,也可以是彈性元素

二息拜、彈性容器屬性:

? ? 1溉潭、flex-direction:該屬性決定主軸的方向。少欺。

取值:

? ? (1)row :表示設置主軸為水平方向喳瓣,從左到右,該值為默認值赞别;

? ? (2)row-reverse:表示設置主軸為水平方向畏陕,從右到左;

? ? (3)column :表示設置主軸為垂直方向氯庆,從上到下蹭秋;

? ? (4)column-reverse :表示設置主軸為垂直方向扰付,從下到上。

? ? 2仁讨、flex-wrap:該屬性決定如果一條軸線排列時內容超出換行羽莺。

? ? (1)nowrap :表示單行顯示,不換行洞豁,該值為默認值盐固;

? ? (2)wrap:表示內容超出容器寬度時換行顯示,第一行在上方丈挟;

? ? (3)wrap-reverse :表示內容超出容器寬度時換行顯示刁卜,但是從下往上開始,也就是第一行在最下方曙咽,最后一行在最上方蛔趴。

? ? 3、flex-flow:該屬性是 flex-direction 和 flex-wrap 的縮寫例朱,即一個屬性可以實現(xiàn)設置兩個屬性的功能孝情。

flex-flow :是一個復合屬性,由 flex-direction 和 flex-wrap 共同組成洒嗤,用空格隔開箫荡,相當于規(guī)定了 flex 布局的 “工作流” (flow),但是不建議這樣寫渔隶,分開設置會更為清晰羔挡。

? ? 4、justify-content:該屬性決定了主軸方向子元素的對齊和分布方式间唉。

? ? (1)flex-start:表示主軸方向左對齊绞灼,該值為默認值;

? ? (2)flex-end :表示主軸方向右對齊终吼;

? ? (3)center :表示主軸方向居中對齊镀赌;

? ? (4)space-between:表示主軸方向兩端對齊,子元素之間的間隔都相等际跪,多余的空白間距只在子元素中間區(qū)域分配商佛;

? ? (5)space-aroundL表示主軸方向距離容器兩側的間隔相等,主軸起點位置的子元素和終點位置的子元素距離容器邊框間距相等姆打,并且子元素兩側的間隔相等良姆,所以在最終效果上,容器邊緣兩側的空白只有中間空白寬度的一半幔戏。

? ? 5玛追、align-items:該屬性決定了交叉軸方向子元素的對齊和分布方式。

? ? (1)flex-start:表示子元素在容器交叉軸方向頂部對齊;

? ? (2)flex-end:表示子元素在容器交叉軸方向底部對齊痊剖;

? ? (3)center :表示子元素在容器交叉軸方向居中對齊韩玩;

? ? (4)baseline :表示所有子元素都相對其第一行文字的基線(字母 x 的下邊緣)對齊。

? ? (5)stretch :表示子元素拉伸陆馁,如果主軸是水平方向找颓,且該元素若未設置高度或者把高度設置為 auto,那么子元素將會占滿整個容器的高度叮贩;如果主軸是垂直方向击狮,且該子元素若未設置寬度或者把寬度設置為 auto ,那么子元素將會占滿整個容器的寬度益老,如果設置了高度和寬度彪蓬,則按照其設置值顯示子元素,該值為默認值捺萌。

? ? 6档冬、align-content:該屬性決定了多根軸線的對齊方式。如果容器只有一根軸線桃纯,那么該屬性不起作用捣郊。

(1) flex-start:表示子元素在容器交叉軸方向頂部對齊;

(2) flex-end:表示子元素在容器交叉軸方向底部對齊慈参;

(3) center:表示子元素在容器交叉軸方向整體居中對齊;

(4) space-between :表示子元素在容器交叉軸方向兩端對齊刮萌,剩下每一行子元素等分剩余的空間驮配;

(5) space-around :表示子元素在容器交叉軸方向上兩側的間隔都相等,且位于起點和終點的元素距離容器邊框間隔為兩側間隔的1/2着茸;

(6) stretch:表示每一行子元素都拉伸壮锻。

三、 Flex 子元素屬性

1涮阔、order:該屬性決定子元素的排列順序猜绣;

1、order 屬性:

? ? order 用來改變某一個子元素的排序位置敬特,參數(shù)integer 是一個整數(shù)掰邢,屬性默認值為 0 ,子元素 order 值越小列越靠前伟阔,反之越大就越靠后辣之。

2、flex-grow:該屬性決定該子元素的放大比例皱炉;

felx-grow 屬性中的 grow 是拉伸的意思怀估,拉伸就是子元素所占據(jù)的空間,一般子元素沒有撐滿容器且容器有剩余空間的情況下進行分配。參數(shù) number 默認值是 0 多搀,表示不拉伸歧蕉。如果一個子元素的這個值為 2,其他子元素的這個值都為 1 時康铭,則前者占據(jù)的剩余空間將比其他子元素多一倍惯退。

3、flex-shrink:該屬性決定該子元素的縮小比例麻削;

flex-shrink 屬性中的 shrink 是收縮的意思蒸痹,和 flex-grow 屬性相反,一般在子元素撐滿容器并且子元素不發(fā)生換行呛哟,容器元素空間不足的情況下進行分配叠荠。

參數(shù) number 默認值是 1,也就是默認所有的子元素都會收縮扫责。如果設置為 0 榛鼎,則代表當前項不收縮。值越大鳖孤,收縮越多者娱。

4、flex-basis:該屬性決定了在分配多余空間之前苏揣,該元素占據(jù)的主軸空間的大谢器ⅰ;

flex-basis 屬性定義了在分配剩余空間之前平匈,子元素占據(jù)的主軸空間的大小框沟。瀏覽器根據(jù)這個屬性來計算主軸是否有多余空間,它的默認值為 auto增炭,即子元素本身大小忍燥,也可以設置具體的值。該值和 width 或者 height 屬性有著相同的效果隙姿,都表示子元素占據(jù)空間的大小梅垄,如果同時設置這兩個屬性的值,就渲染表現(xiàn)來看输玷,會忽略 width 或者 height队丝。

5、flex:該屬性是復合屬性饲嗽,由 flex-grow炭玫、flex-shrink 和 felx-basis 組成;

flex 是一個復合屬性貌虾,由 flex-grow吞加、flex-shrink、 和 flex-basis 組成,其中第二個和第三個參數(shù)是可選的衔憨。其中 none 相當于設置了 " 0 0 auto" 叶圃,auto 相當于設置為 " 1 1 auto" ,默認值為 " 0 1 auto"践图。

6掺冠、align-self:該屬性決定了該子元素與其他子元素不一樣的排列和對齊方式。

align-self 屬性決定單個子元素在交叉軸方向的對齊和對齊方式码党。該屬性和 align-items 效果很類似德崭,唯一的區(qū)別就是 align-self 多了個 auto (默認值) , 表示繼承自容器的 align-items 屬性值揖盘,其他屬性值含義一模一樣眉厨。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市兽狭,隨后出現(xiàn)的幾起案子憾股,更是在濱河造成了極大的恐慌,老刑警劉巖箕慧,帶你破解...
    沈念sama閱讀 212,332評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捺檬,死亡現(xiàn)場離奇詭異带兜,居然都是意外死亡哨鸭,警方通過查閱死者的電腦和手機里逆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,508評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來伐庭,“玉大人座享,你說我怎么就攤上這事∷朴牵” “怎么了?”我有些...
    開封第一講書人閱讀 157,812評論 0 348
  • 文/不壞的土叔 我叫張陵丈秩,是天一觀的道長盯捌。 經(jīng)常有香客問我,道長蘑秽,這世上最難降的妖魔是什么饺著? 我笑而不...
    開封第一講書人閱讀 56,607評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮肠牲,結果婚禮上幼衰,老公的妹妹穿的比我還像新娘。我一直安慰自己缀雳,他們只是感情好渡嚣,可當我...
    茶點故事閱讀 65,728評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般识椰。 火紅的嫁衣襯著肌膚如雪绝葡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,919評論 1 290
  • 那天腹鹉,我揣著相機與錄音藏畅,去河邊找鬼。 笑死功咒,一個胖子當著我的面吹牛愉阎,可吹牛的內容都是我干的。 我是一名探鬼主播力奋,決...
    沈念sama閱讀 39,071評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼榜旦,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了刊侯?” 一聲冷哼從身側響起章办,我...
    開封第一講書人閱讀 37,802評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎滨彻,沒想到半個月后藕届,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,256評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡亭饵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,576評論 2 327
  • 正文 我和宋清朗相戀三年休偶,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辜羊。...
    茶點故事閱讀 38,712評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡踏兜,死狀恐怖,靈堂內的尸體忽然破棺而出八秃,到底是詐尸還是另有隱情碱妆,我是刑警寧澤,帶...
    沈念sama閱讀 34,389評論 4 332
  • 正文 年R本政府宣布昔驱,位于F島的核電站疹尾,受9級特大地震影響,放射性物質發(fā)生泄漏骤肛。R本人自食惡果不足惜纳本,卻給世界環(huán)境...
    茶點故事閱讀 40,032評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望腋颠。 院中可真熱鬧繁成,春花似錦、人聲如沸淑玫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至祠墅,卻和暖如春侮穿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背毁嗦。 一陣腳步聲響...
    開封第一講書人閱讀 32,026評論 1 266
  • 我被黑心中介騙來泰國打工亲茅, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人狗准。 一個月前我還...
    沈念sama閱讀 46,473評論 2 360
  • 正文 我出身青樓克锣,卻偏偏與公主長得像,于是被迫代替她去往敵國和親腔长。 傳聞我的和親對象是個殘疾皇子袭祟,可洞房花燭夜當晚...
    茶點故事閱讀 43,606評論 2 350

推薦閱讀更多精彩內容

  • 彈性布局可以簡潔、完整捞附、響應式的實現(xiàn)各種頁面布局巾乳。 Flexbox主要功能: 屏幕和瀏覽器窗口大小變化也可以靈活調...
    讀心的心閱讀 640評論 0 0
  • 在HTML誕生之初,它主要是為超(富)文本服務的鸟召,很多規(guī)則和啟發(fā)也來自于出版行業(yè)胆绊。但是自二十一世紀以來,Web標準...
    讀行筆記閱讀 1,915評論 0 4
  • Flex Flex是Flexible Box的縮寫欧募,意為”彈性布局”压状,用來為盒狀模型提供最大的靈活性。 任何一個容...
    wudongyu閱讀 280評論 0 0
  • 作者: 阮一峰日期: 2015年7月10日原文鏈接:http://www.ruanyifeng.com/blog/...
    Mike_Gu閱讀 975評論 0 6
  • 推薦學習文檔:http://www.ruanyifeng.com/blog/2015/07/flex-gramma...
    BULL_DEBUG閱讀 374評論 0 0