- - RN中的样式与CSS的不同
1.没有继承性
在CSS中,样式是有继承性的,父控件的样式是可以直接作用在子控件上的,在RN中不存在继承性,只有Text
组件才会有这种特性,Text
就是HTML中的<p>
。
2.样式名采用小驼峰命名
在CSS中我们常用-
来连接两个单词,比如font-size
,在RN中我们用的是fontSize
来表示。
3.所有尺寸没有单位
在web中经常会用的px
等单位,在RN中不存在。
4.特殊的样式名
在RN中有一些CSS中不存在的样式,比如marginHorizontal
用来实现水平方向的外边距,marginVertical
用来实现垂直方向的外边距。
- - RN样式的声明方式
1.通过Style属性直接声明
- 属性值为对象:
<组件 style={{样式}}>
- 属性值为数组:
<组件 style={[{样式1},{样式2}]}>
数组方式会产生属性覆盖,如果后面的样式中有key和前面的样式中重复,会覆盖掉前面的属性key。
2.在style属性中调用StyleSheet声明样式
- 引入:
import {StyleSheet,View} from 'react-native'
- 声明:
const styles = StyleSheet.create({aaa:{样式1},bbb:{样式2}})
- 使用:
<View style={[styles.aaa,styles.bbb]}>
- - Flexbox
- flexDirection
RN主轴方向默认为垂直方向column
- justifyContent
声明项目在主轴上的对齐方式 - alignItems
声明项目在交叉轴上的对齐方式 - flex
声明项目在主轴上的尺寸比例
- - Demensions
可以在Style中实现响应式编程,获取屏幕的宽高
width: Demensions.get('window').width
- - Other
flexWrap:'warp'
默认控件是不能换行的,加上flexWrap
后可以自动换行