ReactNative进阶(五十一): 样式梳理
Posted No Silver Bullet
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ReactNative进阶(五十一): 样式梳理相关的知识,希望对你有一定的参考价值。
文章目录
一、前言
ReactNative
的样式是 CSS
样式的一个子集,并且属性名称与 CSS
中规定的也不完全相同。
二、样式引入方法
常见的引用样式的几种方法,包括内嵌方式,外联方式和混合方式,还可以把样式定义在单独的文件中,通过 import
引用。
1. 内嵌方式
export default class appProject extends Component {
render() {
return (
<View style={
{
marginTop:200,
marginLeft:5,
marginRight:5,
height:84,
flexDirection:'row',
backgroundColor:'#FF0067',
}
}>
</View>
)
}
}
2. 外联方式
const Styles = StyleSheet.create({
container: {
marginTop:200,
marginLeft:5,
marginRight:5,
height:84,
flexDirection:'row',
backgroundColor:'#FF0067',
}
});
3. 混合方式
export default class appProject extends Component {
render() {
return (
//外层容器
<View style={[Styles.container,Styles.bg,{color:'red'}]}>
</View>
)
}
}
4.import 引用
import React from 'react'
import {
StyleSheet,
} from 'react-native';
const styles = StyleSheet.create({
container: {
marginTop:200,
marginLeft:5,
marginRight:5,
height:84,
flexDirection:'row',
},
bg:{
backgroundColor:'#FF0067',
}
});
module.exports = styles;
通过 import
进行引入
import styles from './styles/style';
三、常见属性及说明
3.1 背景
属性名称 取值 对应 css 属性
backgroundColor
|color
| 对应 CSS 中的background-color
属性
3.2 宽高尺寸
属性名称 取值 对应 css 属性
width
|number
| 对应 CSS 中的width
属性height
|number
| 对应 CSS 中的height
属性
3.3 外边距相关 (margin)
属性名称 取值 对应 css 属性
margin
|number
| 对应 CSS 中的margin
属性,不同的是,只能定义一个参数,用以表示上、右、下、左 4 个方位的外补白marginHorizontal
|number
| CSS 中没有对应的属性,相当于同时设置marginRight
和marginLeft
marginVertical
|number
| CSS 中没有对应的属性,相当于同时设置marginTop
和marginBottom
marginTop
|number
| 对应 CSS 中的margin-top
属性marginRight
|number
| 对应 CSS 中的margin-right
属性marginBottom
|number
| 对应 CSS 中的margin-bottom
属性marginLeft
|number
| 对应 CSS 中的margin-left
属性
3.4 内边距相关 (padding)
属性名称 取值 对应 css 属性
padding
| number 对应 CSS 中的padding
属性,不同的是,只能定义一个参数,用以表示上、右、下、左 4 个方位的内补白paddingHorizontal
| number CSS 中没有对应的属性,相当于同时设置paddingRight
和paddingLeft
paddingVertical
| number CSS 中没有对应的属性,相当于同时设置paddingTop
和paddingBottom
paddingTop
| number 对应 CSS 中的padding-top
属性paddingRight
| number 对应 CSS 中的padding-right
属性paddingBottom
| number | 对应 CSS 中的padding-bottom
属性paddingLeft
| number | 对应 CSS 中的padding-left
属性
3.5 边框相关 (border)
属性名称 取值 对应 css 属性
borderStyle
|solid, dotted, dashed
对应 CSS 中的border-style
属性,但阉割了none, hidden, double, groove, ridge, inset, outset
取值,且无方向分拆属性borderWidth
|number
| 对应 CSS 中的border-width
属性borderTopWidth
| number 对应 CSS 中的border-top-width
属性borderRightWidth
| number 对应 CSS 中的border-right-width
属性borderBottomWidth
| number 对应 CSS 中的border-bottom-width
属性borderLeftWidth
| number 对应 CSS 中的border-left-width
属性borderColor
| color | 对应 CSS 中的border-color
属性borderTopColor
|color
| 对应 CSS 中的border-top-color
属性borderRightColor
|color
| 对应 CSS 中的border-right-color
属性borderBottomColor
|color
| 对应 CSS 中的border-bottom-color
属性borderLeftColor
|color
| 对应 CSS 中的border-left-color
属性borderRadius
|number
| 对应 CSS 中的border-radius
属性borderTopLeftRadius
|number
| 对应 CSS 中的border-top-left-radius
属性borderTopRightRadius
|number
| 对应 CSS 中的border-top-right-radius
属性borderBottomLeftRadius
|number
| 对应 CSS 中的border-bottom-left-radius
属性borderBottomRightRadius
|number
| 对应 CSS 中的border-bottom-right-radius
属性
3.6 位置相关 (position)
属性名称 取值 对应 css 属性
position
|absolute, relative
对应 CSS 中的position
属性,但阉割了static, fixed
取值top
| number | 对应 CSS 中的top
属性right
| number | 对应 CSS 中的right
属性bottom
| number | 对应 CSS 中的bottom
属性left
| number | 对应 CSS 中的left
属性
3.7 文本相关 (Text)
属性名称 取值 对应 css 属性
color
| color | 对应 CSS 中的color
属性fontFamily
| string | 对应 CSS 中的font-family
属性fontSize
| number | 对应 CSS 中的font-size
属性fontStyle
|normal, italic
对应 CSS 中的font-style
属性,但阉割了oblique
取值fontWeight
|normal, bold 100~900
对应 CSS 中的font-weight
属性,但阉割了bolder, lighter
取值lineHeight
| number | 对应 CSS 中的line-height
属性textAlign
|auto, left, right, center, justifyios
| 对应 CSS 中的text-align
属性,增加了auto
取值textAlignVerticalandroid
|auto, top, bottom, center
| 对应 CSS 中的vertical-align
属性,增加了auto
取值,center
取代了middle
,并阉割了 -baseline, sub
等值textShadowColor
| color | 对应 CSS 中的text-shadow
属性中的颜色定义textShadowOffset
|{width: number, height: number}
| 对应 CSS 中的text-shadow
属性中的阴影偏移定义textShadowRadius
| number | 在 CSS 中,阴影的圆角大小取决于元素的圆角定义,不需要额外定义letterSpacingiOS
| number | 对应 CSS 中的letter-spacing
属性,但取值不同textDecorationColoriOS
| color | 对应 CSS 中的text-decoration-color
属性textDecorationLineiOS
|none, underline, line-through, underline line-through
| 对应 CSS 中的text-decoration-line
属性,但阉割了overline, blink 取
值textDecorationStyleiOS
|solid, double, dotted, dashed
| 对应 CSS 中的text-decoration-style
属性,但阉割了wavy
取值writingDirectioniOS
|auto, ltr, rtl
| 对应 CSS 中的direction
属性,增加了auto
取值
3.8 弹性布局相关 (Flex)
属性名称 取值 对应 css 属性
flex
| number | 对应 CSS 中的flex
属性flexDirection
|row, column
| 对应 CSS 中的flex-direction
属性,但阉割了row-reverse, column-reverse
取值flexWrap
|wrap, nowrap
| 对应 CSS 中的flex-wrap
属性,但阉割了wrap-reverse
取值justifyContent
|flex-start, flex-end, center, space-between, space-around
| 对应 CSS 中的justify-content
属性,但阉割了stretch
取值。alignItems
|flex-start, flex-end, center, stretch
| 对应 CSS 中的align-items
属性,但阉割了baseline
取值。alignSelf
|auto, flex-start, flex-end, center, stretch
| 对应 CSS 中的align-self
属性,但阉割了baseline
取值
3.9 转换相关 (transform)
属性名称 取值 对应 css 属性
transform
|[{perspective: number}, {rotate: string}, {rotateX: string}, {rotateY: string}, {rotateZ: string}, {scale: number}, {scaleX: number}, {scaleY: number}, - - - {translateX: number}, {translateY: number}, {skewX: string}, {skewY: string}]
| 对应 CSS 中的transform
属性transformMatrix
|TransformMatrixPropType
| 类似于 CSS 中transform
属性的matrix()
和matrix3d()
函数backfaceVisibility
|visible, hidden
| 对应 CSS 中的backface-visibility
属性
3.10 图片相关
属性名称 取值 对应 css 属性
resizeMode
|cover, contain, stretch
其中,contain
是指无论如何图片都包含在指定区域内,假设设置的宽度高度比图片大,则图片居中显示,否则,图片等比缩小显示overflow
|visible, hidden
超出部分是否显示,hidden
为隐藏tintColor
| number 着色,rgb
字符串类型opacity
| number 透明度
3.11 图像变换
属性名称 取值 对应 css 属性
rotation
– 旋转scaleX
– 水平方向缩放scaleY
– 垂直方向缩放translateX
– 水平方向平移translateY
– 水平方向平移
四、拓展阅读
以上是关于ReactNative进阶(五十一): 样式梳理的主要内容,如果未能解决你的问题,请参考以下文章
ReactNative进阶(三十一): IoC 框架 InversifyJS解读
ReactNative进阶(四十一):应用FlatList实现分组列表
跨平台应用开发进阶(五十一):HTML5(富文本内容)连续数字字母不自动换行问题分析及解决
跨平台应用开发进阶(五十一):HTML5(富文本内容)连续数字字母不自动换行问题分析及解决