http://reactnative.cn/docs/0.50/layout-with-flexbox.html#content *
http://www.reibang.com/p/f4c1a35af92a *
http://www.reibang.com/p/31248003f375 *
https://css-tricks.com/snippets/css/a-guide-to-flexbox/ ***
“彈性布局”弄喘,旨在通過彈性的方式孽水,來對齊和分布容器中內(nèi)容的空間俺祠,使其能適應(yīng)不同屏幕膨桥,為盒裝模型提供最大的靈活性戒努。大部分情況是處理父控件與子控件的位置更新
主要思想是:讓容器有能力讓其子控件能夠改變其寬度和泌、高度(甚至是順序)本昏,以最佳方式填充可用空間蛹尝。
一般來說,使用flexDirection涛舍、alignItems和 justifyContent三個(gè)樣式屬性就已經(jīng)能滿足大多數(shù)布局需求澄惊。
一般用法
display:flex
可以使組件在可利用的空間中,動態(tài)地?cái)U(kuò)張或收縮富雅,以指定彈性的寬、高肛搬。
- 使用flex:1來指定某個(gè)組件擴(kuò)張没佑,以撐滿所有剩余的空間。
- 如果有多個(gè)并列的子組件使用了flex:1温赔,則這些子組件會平分父容器中剩余的空間蛤奢。
- 如果這些并列的子組件的flex值不一樣,則誰的值更大陶贼,誰占據(jù)剩余空間的比例就更大(即占據(jù)剩余空間的比等于并列組件間flex值的比)
- 前提:其父容器的尺寸不為零
flexDirection
在組件的style中指定flexDirection可以決定布局的主軸啤贩。子元素是應(yīng)該沿著水平軸(row)方向排列,還是沿著豎直軸(column)方向排列拜秧。其值如下:
row: 主軸為水平方向痹屹,起點(diǎn)為左端
row-reverse: 主軸為水平方向,起點(diǎn)在右端
column:主軸為豎直方向枉氮,起點(diǎn)在上沿志衍。(默認(rèn))
column-reverse:主軸為豎直方向,起點(diǎn)在下沿
當(dāng)View包含View1聊替,和View2的時(shí)候楼肪,
1,若子控件未設(shè)height惹悄,則會與父控件的高度相同春叫;
2,若子控件未設(shè)width泣港,則會按照控件中的內(nèi)容進(jìn)行寬度設(shè)置(例如按照文字的總高度)
flexDirection的默認(rèn)值是column而不是row暂殖,而flex也只能指定一個(gè)數(shù)字值。
justifyContent
在組件的style中指定justifyContent爷速,可以決定其子元素沿著 主軸 的排列方式央星。子元素是應(yīng)該靠近主軸的起始端還是末尾段分布呢?亦或應(yīng)該均勻分布惫东?對應(yīng)的這些可選項(xiàng)有:
flex-start莉给、center毙石、flex-end、space-around颓遏、space-between
alignContent
決定其子元素沿著 交叉軸 的排列方式徐矩,其值有:
flex-start、center叁幢、flex-end滤灯、space-around、space-between
aligItems
在組件的style中指定alignItems曼玩,可以決定其子元素沿著 次軸(與主軸垂直的軸)的排列方式鳞骤。子元素是應(yīng)該靠近次軸的起始端還是末尾段分布呢?亦或應(yīng)該均勻分布黍判?對應(yīng)的這些可選項(xiàng)有:
flex-start豫尽、center、flex-end顷帖、stretch美旧。其中,要使stretch生效贬墩,子元素在次軸方向上不能有固定的尺寸榴嗅。
flex-start:交叉軸開端;center:交叉軸的中間位置陶舞;flex-end:交叉軸的末端位置
aligSelf
alignSelf決定了元素嗽测,在父元素的次軸方向的排列方式(此樣式設(shè)置在子元素上),其值會覆蓋父元素的alignItems的值吊说。
flexWrap
包含內(nèi)容论咏,默認(rèn)值是nowrap,不包裹所有內(nèi)容颁井。其值如下:
nowrap:沿主軸方向布局厅贪,超出容器長度的部分不可見
wrap:沿主軸布局所需長度大于容器總長度時(shí),分行布局雅宾,所有項(xiàng)目內(nèi)容都可見
QQ.png
position
控件在父控件中的位置關(guān)系
其值如下:
relative:彈性布局养涮,自動填充
absolute:為絕對布局,一般會與left和top屬性一起使用眉抬。有時(shí)候我們需要實(shí)現(xiàn)某些項(xiàng)目重疊起來贯吓,absolute屬性就能發(fā)揮作用了。
margin
外邊距
marginVertical蜀变、marginHorizontal
padding
內(nèi)邊距
paddingTop悄谐、paddingBottom、paddingLeft库北、paddingRight