2018-03-29

Flexbox布局

1.布局模型

flexbox由Flex容器和Flex項(xiàng)目組成爵嗅,容器即父元素娇澎,項(xiàng)目即子元素 任何一個元素可以指定flexbox布局,設(shè)為display:flex或display:inline-flex睹晒。

更好理解伸縮流趟庄,看下圖

主軸既可以是水平軸,也可以是垂直軸,項(xiàng)目默認(rèn)沿主軸排列,還是看圖比較明了伪很。

2.伸縮容器屬性

瀏覽器支持屬性有

display

flex-direction

flex-wrap

flex-flow

justify-content

align-items

align-content

2.1 display

指定元素是否為伸縮容器

display:flex |inline-flex

注意設(shè)為flex布局后戚啥,子元素的float、clear和vertical-align屬性失效(vertical-align設(shè)置元素的垂直對齊方式)

2.2 flex-direction

指定主軸的方向

flex-direction:row|row-reverse| column | column-reverse

row(默認(rèn)值):伸縮容器若為水平方向軸锉试,伸縮項(xiàng)目的排版方式為從左到右排列猫十。

row-reverse:伸縮容器若為水平方向軸,伸縮項(xiàng)目排版方式為從右到左排列。

column:伸縮容器若為垂直方向軸拖云,伸縮項(xiàng)目的排版方式為從上到下排列贷笛。

column-reverse:伸縮容器若為垂直方向軸,伸縮項(xiàng)目的排版方式為從下到上排列宙项。

2.3 flex-wrap

指定主軸方向空間不足時昨忆,是否換行及該如何換行

flex-wrap:nowrap |wrap|wrap-reverse

nowrap:即使空間不足,伸縮容器也不允許換行杉允。

wrap:空間不足時邑贴,允許換行,若主軸為水平軸叔磷,則換行方向?yàn)閺纳系较隆?/p>

wrap-reverse:空間不足時拢驾,允許換行,若主軸為水平軸改基,則換行方向?yàn)閺南碌缴希ㄅcwrap時候相反)繁疤。

2.4 flex-flow

flex-flow:flex-directionflex-wrap

此屬性是flex-direction和flex-wrap的縮寫版本

2.5 justify-content

指定沿主軸線的對齊方式

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

flex-start:向主軸線的其實(shí)位置靠齊(默認(rèn)值)

flex-end:向主軸線的結(jié)束位置靠齊

center:向主軸線的中心位置靠齊

space-between:平均分布在主軸線里,第一個伸縮項(xiàng)目在主軸線的開始位置秕狰,最后一個伸縮項(xiàng)目在主軸線的結(jié)束位置

space-around:伸縮項(xiàng)目平均分布在主軸線里稠腊,兩端保留一半的空間

2.6 align-items

指定伸縮項(xiàng)目在側(cè)軸方向上的對齊方式

align-items:flex-start |flex-end|center|baseline|stretch

flex-start:向側(cè)軸的起始位置靠齊

flex-end:向側(cè)軸的結(jié)束位置靠齊

center:向側(cè)軸的中心位置靠齊

baseline:如伸縮項(xiàng)目的行內(nèi)軸與側(cè)軸為同一條,則該值與"flex-start"等效鸣哀,其他情況架忌,該值參與基線對齊

stretch:向側(cè)軸方向拉伸填充整個容器

2.7 align-content

伸縮項(xiàng)目出現(xiàn)換行后在側(cè)軸方向上的對齊方式,要換行必須要有flex-wrap:wrap,其實(shí)意思就是換行后每行之間的對齊方式

align-content:flex-start |flex-end|center|space-between |space-around |stretch

flex-start:向側(cè)軸的起始位置靠齊

flex-end:向側(cè)軸的結(jié)束位置靠齊

center:向側(cè)軸的中心位置靠齊

space-between:在側(cè)軸中平均分布

space-around:在側(cè)軸中平均分布我衬,且在兩邊各有一半的空間

stretch:在側(cè)軸上伸展以占用剩余的空間

3.伸縮項(xiàng)目屬性

伸縮項(xiàng)目支持屬性有

order

flex-grow

flex-shrink

flex-basis

flex

align-self 3e

4.1 order

這個屬性定義項(xiàng)目的排列順序叹放,數(shù)值越小,排列越靠前挠羔,默認(rèn)值為0

order:integer

3.2 flex-grow

定義伸縮項(xiàng)目的放大比例井仰,默認(rèn)值為0,即若存在剩余空間破加,也不放大俱恶。比如所有伸縮項(xiàng)目的flex-grow為1,那么每個伸縮項(xiàng)目將設(shè)置為一個大小相等的剩余空間范舀;如果你將其中一個伸縮項(xiàng)目的flex-grow設(shè)置為2合是,那么這個伸縮項(xiàng)目所占的剩余空間是其他伸縮項(xiàng)目所占剩余空間的2倍。

flex-grow:number

3.3 flex-shrink

定義伸縮項(xiàng)目的收縮能力,即如果空間不足尿背,該項(xiàng)目將縮小

flex-shrink:number//默認(rèn)值為1

如果所有項(xiàng)目的flex-shrink的值都為1端仰,當(dāng)空間不足時捶惜,都將等比例縮小田藐,如果一個項(xiàng)目的flex-shrink的值為0,其他項(xiàng)目為1,當(dāng)空間不足時汽久,前者不縮小鹤竭。

3.4 flex-basis

設(shè)置伸縮項(xiàng)目的基準(zhǔn)值,剩余的空間按比率進(jìn)行伸縮

flex-basis:length| auto

3.5 flex

flex是flex-grow景醇、flex-shrink和flex-basis這三個的縮寫

flex:none | flex-grow flex-shrink flex-basis/*

? ? flex-shrink和flex-basis是可選參數(shù)

*/

此處如果flex值為1,相當(dāng)于flex-grow值為1臀稚,該元素把伸縮容器的剩余空間占滿。

3.6 align-self

設(shè)置單個的伸縮項(xiàng)目在側(cè)軸上的對齊方式三痰,可以覆蓋align-items屬性吧寺,默認(rèn)值為auto

align-self:auto|flex-start |flex-end|center|baseline|stretch

auto是繼承父元素的align-items屬性,如果沒有父元素散劫,則按照stretch來計(jì)算其值稚机,其他的同align-items。

接下來總結(jié)一下下react-native中flexbox的使用获搏,在react-native中flexDirection赖条、alignItems和justifyContent可以滿足大多數(shù)布局需求。

react-native目前主要支持flexbox的屬性

alignItems

alignSelf

flex

flexDirection

flexWrap

justifyContent

1.alignItems

用法同前面說的align-items常熙,區(qū)別在與react-native中需要使用駝峰寫法

alignItems:flex-start |flex-end|center|stretch

2.alignSelf

用法同前面說的align-self纬乍,區(qū)別在與react-native中需要使用駝峰寫法

alignSelf:auto|flex-start |flex-end|center|stretch

3.flex

用法同前面說的flex

flex:number

4.flexDirection

用法同前面說的flex-direciton,但react-native中默認(rèn)是column

flexDirection:row|column

5.flexWrap

用法同前面說的flex-wrap裸卫,區(qū)別在與react-native中需要使用駝峰寫法

flexWrap:wrap| nowrap

6.justifyContent

用法同前面說的justifyContent仿贬,區(qū)別在與react-native中需要使用駝峰寫法

justifyContent: flex-start | flex-end| center |space-between|space-around

哈哈哈??!D够摺诅蝶!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市募壕,隨后出現(xiàn)的幾起案子调炬,更是在濱河造成了極大的恐慌,老刑警劉巖舱馅,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缰泡,死亡現(xiàn)場離奇詭異,居然都是意外死亡代嗤,警方通過查閱死者的電腦和手機(jī)棘钞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來干毅,“玉大人宜猜,你說我怎么就攤上這事∠醴辏” “怎么了姨拥?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵绅喉,是天一觀的道長。 經(jīng)常有香客問我叫乌,道長柴罐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任憨奸,我火速辦了婚禮革屠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘排宰。我一直安慰自己似芝,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布板甘。 她就那樣靜靜地躺著国觉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪虾啦。 梳的紋絲不亂的頭發(fā)上麻诀,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天,我揣著相機(jī)與錄音傲醉,去河邊找鬼蝇闭。 笑死,一個胖子當(dāng)著我的面吹牛硬毕,可吹牛的內(nèi)容都是我干的呻引。 我是一名探鬼主播,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼吐咳,長吁一口氣:“原來是場噩夢啊……” “哼逻悠!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起韭脊,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤童谒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后沪羔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體饥伊,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年蔫饰,在試婚紗的時候發(fā)現(xiàn)自己被綠了琅豆。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,989評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡篓吁,死狀恐怖茫因,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情杖剪,我是刑警寧澤冻押,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布驰贷,位于F島的核電站,受9級特大地震影響翼雀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜孩擂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一狼渊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧类垦,春花似錦狈邑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至砰琢,卻和暖如春蘸嘶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背陪汽。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工训唱, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人挚冤。 一個月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓况增,卻偏偏與公主長得像,于是被迫代替她去往敵國和親训挡。 傳聞我的和親對象是個殘疾皇子澳骤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評論 2 345

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