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
和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
– 水平方向平移
四、拓展阅读
版权声明: 本文为 InfoQ 作者【No Silver Bullet】的原创文章。
原文链接:【http://xie.infoq.cn/article/e2406e9d6e9107200033d13a1】。文章转载请联系作者。
评论