flex布局基礎(chǔ)與應(yīng)用

注:這是我之前在微信公眾號‘雨后的夢溪筆談’ (yuhou5206)寫的一篇文章说榆,今天移至簡書肥缔,原創(chuàng)文章轉(zhuǎn)載請注明吩谦。

阮一峰flex布局篇網(wǎng)址:

http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html,

http://www.ruanyifeng.com/blog/2015/07/flex-examples.html

本篇基本參照阮一峰大神的內(nèi)容,有一些地方有稍許改動加入個(gè)人觀點(diǎn),讓我自己更易于理解.(其中原文中"交叉軸"在這里命做"側(cè)軸").如果有時(shí)間建議參觀面網(wǎng)址的原文,因?yàn)樵膱D片解析更加明了.

image

first:介紹

Flex布局:Flexible Box 彈性盒子布局,所以flex布局其實(shí)就是彈性盒子布局,就是彈彈彈,彈走魚尾紋,那種布局.任何一個(gè)容器都可以指定為Flex布局.

支持瀏覽器:需要支持的瀏覽器是,IE10+,所以一般應(yīng)用在移動端,如果要支持到IE8就要做處理.

second:開始

1.指定flex布局的兩種方式,以及兼容webkit內(nèi)核的瀏覽器.

image

(注意,當(dāng)設(shè)置為Flex布局以后,子元素的float,clear和vertical-align的屬性都將失效)

采用Flex布局的元素,稱為Flex容器(flex container),簡稱"容器". 它的所有子元素自動成為容器成員,稱為Flex項(xiàng)目(flex item),簡稱"項(xiàng)目".

每一個(gè)flex容器中都有兩個(gè)軸,主軸(main axis) ,側(cè)軸(cross axis) ,主軸的開始位置與邊框的交叉點(diǎn),叫做main start,結(jié)束位置叫做main end;側(cè)軸的開始位置叫做cross start,結(jié)束位置叫做cross end. 項(xiàng)目的默認(rèn)沿著主軸排列,單個(gè)項(xiàng)目占據(jù)主軸的空間叫做main size,占據(jù)交叉軸的空間叫做cross size.

(原文圖片)

2.容器的屬性

以下六個(gè)屬性是設(shè)置在容器上的.
flex-direction,flex-wrap,flex-flow,justify-content,align-items,align-content

2.1 flex-direction 屬性

flex-direction屬性決定主軸的方向,也就是項(xiàng)目排列的方向;

image
        XXX:row(默認(rèn)值):主軸為水平方向,起點(diǎn)在左端

        XXX:row-reverse:主軸為水平方向,起點(diǎn)在右端

        XXX:column:主軸為垂直方向,起點(diǎn)在上邊際

        XXX:column-reverse 主軸為垂直方向,起點(diǎn)在下沿

** 2.2 flex-wrap 屬性**

默認(rèn)情況下,項(xiàng)目都排在一條線(又稱"軸線")上.flex-wrap空值的就是他的排列方式.
image
  XXX:nowrap(默認(rèn)值):不換行

    wrap:換行,第一行在上方

    wrap-reverse:換行,第一行在下方

2.3flex-flow

image
flex-flow屬性是flex-direction屬性和flex-warp屬性的簡寫形式,默認(rèn)值為row nowrap,

 也就是==>>   flex-flow:flex-direction && flex-wrap

也就是這兩種加起來,zzz,建議使用的時(shí)候用flex-flow,而不要單一寫 

2.4 justify-content屬性

image
justify-content: flex-start | flex-end | center | space-between | space-around;

這里與之對應(yīng)的是,開始,結(jié)束,居中,空白在之間,空白包圍項(xiàng)目.

2.5 align-items

image
XXX:flex-start:側(cè)軸的起點(diǎn)對齊

lex-end:側(cè)軸的終點(diǎn)對齊

center:側(cè)軸的中點(diǎn)對齊

baseline:項(xiàng)目的第一行文字的基線對齊

stretch(默認(rèn)值):如果項(xiàng)目沒有設(shè)置高度或設(shè)為auto,將占滿整個(gè)容器的高度

2.6 align-content屬性

align-content 屬性定義了多根軸線的對齊方式赵辕。如果項(xiàng)目只有一根軸線废亭,該屬性不起作用邻遏。

image
XXX:flex-start:與側(cè)軸的起點(diǎn)對齊

flex-end:與側(cè)軸的終點(diǎn)對齊

center:與側(cè)軸的中心點(diǎn)對齊

space-between:與側(cè)軸兩端對齊,軸線之間的間隔平均分布.

space-around:每根軸線兩側(cè)的間隔都相等.所以,軸線之間的間隔比軸線與邊框的間隔大一倍

strech(默認(rèn)值):軸線占滿整個(gè)側(cè)軸,塞滿,就是這個(gè)意思

3.項(xiàng)目的屬性,容器內(nèi)部項(xiàng)目的屬性

    對應(yīng)參數(shù):order flex-grow flex-shrink flex-basis flex align-self

3.1 order屬性

order屬性定義項(xiàng)目排列順序.數(shù)值越小,排列越靠前,默認(rèn)為0

image

3.2 flex-grow 屬性(擴(kuò)展比例)

flex-grow屬性定義項(xiàng)目的放大比例酿箭,默認(rèn)為0栏笆,即如果存在剩余空間,也不放大做入。

如果所有項(xiàng)目的flex-grow屬性都為1冒晰,則它們將等分剩余空間(如果有的話)。
如果一個(gè)項(xiàng)目的flex-grow屬性為2竟块,其他項(xiàng)目都  為1壶运,則前者占據(jù)的剩余空間將比其他項(xiàng)多一倍
image

3.3 flex-shrink 屬性(收縮率)

    flex-shrink屬性定義了項(xiàng)目的縮小比例,默認(rèn)為1浪秘,即如果空間不足蒋情,該項(xiàng)目將縮小。

   如果所有項(xiàng)目的flex-shrink屬性都為1耸携,當(dāng)空間不足時(shí)棵癣,都將等比例縮小。
   如果一個(gè)項(xiàng)目的flex-shrink屬性為0夺衍,其他項(xiàng)目都為1狈谊,則空間不足時(shí),前者不縮小刷后。(注:負(fù)值對該屬性無效)
image

3.4 flex-basis 屬性

flex-basis屬性定義了在分配多余空間之前的畴,項(xiàng)目占據(jù)的主軸空間(main size)。
瀏覽器根據(jù)這個(gè)屬性尝胆,計(jì)算主軸是否有多余空間丧裁。它的默認(rèn)值為auto,即項(xiàng)目的本來大小含衔。
它可以設(shè)為跟width或height屬性一樣的值(比如350px)煎娇,則項(xiàng)目將占據(jù)固定空間。
image

3.5 flex屬性

flex屬性是flex-grow, flex-shrink 和 flex-basis的簡寫贪染,默認(rèn)值為0 1 auto缓呛。
后兩個(gè)屬性可選.建議優(yōu)先使用這個(gè)屬性,而不是單獨(dú)寫三個(gè)分離的屬性.
image

3.6 align-self屬性

align-self屬性允許單個(gè)項(xiàng)目有與其他項(xiàng)目不一樣的對齊方式杭隙,可覆蓋align-items屬性哟绊。
默認(rèn)值為auto,表示繼承父元素的align-items屬性痰憎,如果沒有父元素票髓,則等同于stretch。
image

變量:auto flex-start flex-end center baseline stretch

4.一些實(shí)際簡單應(yīng)用,以及代碼.

4.1骰子

一點(diǎn)

image

(骰子圖片均來自原網(wǎng))

重要代碼

image

兩點(diǎn)

image

重要代碼

image

三點(diǎn)

image

重要代碼

image

四點(diǎn)

image

重要代碼

image
image

五點(diǎn)

    源網(wǎng)沒有圖,這里,自己搞的就不弄什么陰影漸變圓角了....
image

重要代碼

image
image

六點(diǎn)

image

重要代碼

image

4.2流式布局

流式布局,就是每個(gè)項(xiàng)目固定,但是會自動分行

image

重要代碼

image

注:這是我之前在微信公眾號‘雨后的夢溪筆談’ (yuhou5206)寫的一篇文章铣耘,今天移至簡書洽沟,原創(chuàng)文章轉(zhuǎn)載請注明

(此節(jié)完)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蜗细,一起剝皮案震驚了整個(gè)濱河市裆操,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖踪区,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件昆烁,死亡現(xiàn)場離奇詭異,居然都是意外死亡朽缴,警方通過查閱死者的電腦和手機(jī)善玫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進(jìn)店門水援,熙熙樓的掌柜王于貴愁眉苦臉地迎上來密强,“玉大人,你說我怎么就攤上這事蜗元』虿常” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵奕扣,是天一觀的道長薪鹦。 經(jīng)常有香客問我,道長惯豆,這世上最難降的妖魔是什么池磁? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮楷兽,結(jié)果婚禮上地熄,老公的妹妹穿的比我還像新娘。我一直安慰自己芯杀,他們只是感情好端考,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著揭厚,像睡著了一般却特。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上筛圆,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天裂明,我揣著相機(jī)與錄音,去河邊找鬼太援。 笑死闽晦,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的粉寞。 我是一名探鬼主播尼荆,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼唧垦!你這毒婦竟也來了捅儒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎巧还,沒想到半個(gè)月后鞭莽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡麸祷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年澎怒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片阶牍。...
    茶點(diǎn)故事閱讀 39,932評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡喷面,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出走孽,到底是詐尸還是另有隱情惧辈,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布磕瓷,位于F島的核電站盒齿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏困食。R本人自食惡果不足惜边翁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望硕盹。 院中可真熱鬧符匾,春花似錦、人聲如沸莱睁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽仰剿。三九已至创淡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間南吮,已是汗流浹背琳彩。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留部凑,地道東北人露乏。 一個(gè)月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像涂邀,于是被迫代替她去往敵國和親瘟仿。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評論 2 354

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

  • H5移動端知識點(diǎn)總結(jié) 閱讀目錄 移動開發(fā)基本知識點(diǎn) calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇閱讀 4,500評論 0 26
  • 移動開發(fā)基本知識點(diǎn) 一.使用rem作為單位 html { font-size: 100px; } @media(m...
    橫沖直撞666閱讀 3,472評論 0 6
  • HTML 5 HTML5概述 因特網(wǎng)上的信息是以網(wǎng)頁的形式展示給用戶的比勉,因此網(wǎng)頁是網(wǎng)絡(luò)信息傳遞的載體劳较。網(wǎng)頁文件是用...
    阿啊阿吖丁閱讀 3,888評論 0 0
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案驹止? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,753評論 1 92
  • 前言 溫馨提示:本文較長,圖片較多观蜗,本來是想寫一篇 CSS 布局方式的臊恋,但是奈何 CSS 布局方式種類太多并且實(shí)現(xiàn)...
    sunshine小小倩閱讀 3,139評論 0 59