對前端一竅不通,還望各位神指點一二??
首先聲明,部分資料與圖片來自小碼哥,需要學習的朋友,文章最下面有鏈接,還望下載資料。
FlexBox布局,就是決定父盒子和子盒子的關系的
FlexBox核心思想,在CSS是塊,內聯流的方向,Flex布局是基于flex-flow流(主軸是豎直方向,輔軸就是平直方向,當主軸是平直方向,那么輔軸就是豎直方向)
一、FlexBox布局
1.1 FlexBox是什么意思呢?
flexible(形容詞):能夠伸縮或者很容易變化,以適應外界條件的變化
box(名詞):通用的矩形容器
1.2什么是FlexBox布局?
彈性盒模型(The Flexible Box Module),又叫Flexbox,意為“彈性布局”,旨在通過彈性的方式來對齊和分布容器中內容的空間,使其能適應不同屏幕,為盒裝模型提供最大的靈活性。
Flex布局主要思想是:讓容器有能力讓其子項目能夠改變其寬度、高度(甚至是順序),以最佳方式填充可用空間;
React native中的FlexBox是這個規范的一個子集。
1.3大部分情況下是處理圖中FlexItem在FlexContainer中的位置和尺寸關系
二、屬性定義
a)
flexDirection:該屬性決定主軸的方向
row: 主軸為水平方向,起點為左端。
row-reverse: 主軸為水平方向,起點在右端
column:主軸為豎直方向,起點在上沿。(默認)
column-reverse:主軸為豎直方向,起點在下沿。
flexDirection:’row’ (主軸方向為水平方向,起點為左端 )
當View包含View1,和View2的時候,
1,若子控件并未設備高度,則會與父控件的高度相同
2,若子控件并未設備寬度,則會按照控件中的內容進行寬度設置(例如按照文字的總高度)
b)
marginTop: 上間距,
c)
justifyContent:定義伸縮項目在主軸上的對齊方式
flex-start: 伸縮項目向一行的起始位置靠齊
flex-end: 伸縮項目向一行的結束位置靠齊
center: 伸縮項目向一行的中間位置靠齊
space-between: 兩端對齊,項目之間的間隔都相等
space-around: 伸縮項目會平均的分布在行里,兩端保留一半的空間
d)
alignItems:定義伸縮項目在交叉軸(側軸,垂直于主軸的軸)上的對其方式
flex-start: 交叉軸的起點對齊
flex-end: 交叉軸的終點對齊
center: 交叉軸的中點對其
baseline: 項目中第一文字的基線對其
stretch: 如果項目中未設置高度或者設置為auto,將占滿整個容器的高度(默認)
e)
flex-wrap:默認情況下,項目都排在一條線上。flex-wrap屬性定義,如果一條軸線排不下該如何換行
nowrap: 不換行
wrap: 換行
wrap-reverse:換行,第一行在下方
nowrap(默認值):不換行。
wrap:換行,第一行在上方。
wrap-reverse:換行,第一行在下方。(和wrap相反)
子控件相關屬性
元素屬性:
a)
flex: 用來決定盒子寬度(寬度= 彈性寬度=flexGrow/sum(flexGrow)))默認值(0,“flex-grow”、“flex-shrink”和“flex-basis”三個屬性的縮寫,其中第二個和第三個參數(flex- ? ?shrink、flex-basis)是可選參數。
默認值為“0 1 auto”。
寬度=彈性寬度* ( flexGrow / sum(flexGorw) )
b)
alignSelf: 單個項目在垂直于主軸的的軸上的對其方式
flex-start:父控件頂部
flex-end:父控件底部
center:父控件中間
auto:繼承父元素的alignItems屬性
baseline:第一行文字的基線
stretch:按照父控件的相關尺寸
Text相關屬性
三,開發中如何獲取屏幕的寬,高,分辨率
感謝各位的閱讀,如有不當之處還望各位多多指教
相關百度云資料:鏈接: https://pan.baidu.com/s/1o8EWYCi 密碼: u38t