ReactNative 进阶(五十一): 样式梳理

一、前言
ReactNative 的样式是 CSS 样式的一个子集,并且属性名称与 CSS 中规定的也不完全相同。
二、样式引入方法
常见的引用样式的几种方法,包括内嵌方式,外联方式和混合方式,还可以把样式定义在单独的文件中,通过 import 引用。
1. 内嵌方式
2. 外联方式
3. 混合方式
4.import 引用
通过 import 进行引入
三、常见属性及说明
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和marginLeftmarginVertical|number| CSS 中没有对应的属性,相当于同时设置marginTop和marginBottommarginTop|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和paddingLeftpaddingVertical| number CSS 中没有对应的属性,相当于同时设置paddingTop和paddingBottompaddingTop| 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– 水平方向平移
四、拓展阅读
版权声明: 本文为 InfoQ 作者【No Silver Bullet】的原创文章。
原文链接:【http://xie.infoq.cn/article/e2406e9d6e9107200033d13a1】。文章转载请联系作者。











评论