百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

React-Native 样式指南(react-native-modal)

zhezhongyun 2025-04-06 00:31 21 浏览

React-Native 样式指南

React-Native 的样式基本上是实现了 CSS 的一个子集,并且属性名不完全一致,所以当你开始在编写 React-Native 之前,可以先简要了解一下。

目录

  • Properties 属性
    • Text 文本
    • Dimension 尺寸
    • Positioning 定位
    • Margin 外部白
    • Padding 内补白
    • Border 边框
    • Background 背景
    • Transform 转换
    • Flexbox 弹性盒
    • Other 其他
  • Values 取值
    • Color 颜色
    • Number 数值
  • Units 单位
    • Pt 点
  • PixelRatio 像素密度

Properties 属性

Text 文本(18)

属性名

取值

描述

color

对应 CSS color 属性

fontFamily

string

对应 CSS font-family 属性

fontSize

对应 CSS font-size 属性

fontStyle

normal, italic

对应 CSS font-style 属性,但阉割了 oblique 取值

fontWeight

normal, bold 100~900

对应 CSS font-weight 属性,但阉割了 bolder, lighter 取值

lineHeight

对应 CSS line-height 属性

textAlign

auto, left, right, center, justifyiOS

对应 CSS text-align 属性,但增加了 auto 取值。当取值为 justify 时,在 Android 上会变为 left

textDecorationLine

none, underline, line-through, underline line-through

对应 CSS text-decoration-line 属性,但阉割了 overline, blink 取值

textShadowColor

对应 CSS text-shadow 属性中的颜色定义

textShadowOffset

{
width:,
height:
}

对应 CSS text-shadow 属性中的阴影偏移定义

textShadowRadius

在 CSS 中,阴影的圆角大小取决于元素的圆角定义,不需要额外定义

includeFontPadding
Android

Android在默认情况下会为文字额外保留一些padding,以便留出空间摆放上标或是下标的文字。对于某些字体来说,这些额外的padding可能会导致文字难以垂直居中。如果你把textAlignVertical设置为center之后,文字看起来依然不在正中间,那么可以尝试将本属性设置为false

textAlignVertical
Android

auto, top, bottom, center

对应 CSS vertical-align 属性,增加了 auto 取值,center 取代了 middle,并阉割了 baseline, sub 等值

fontVariant
iOS

small-caps, oldstyle-nums, lining-nums, tabular-nums, proportional-nums

对应 CSS font-variant 属性,但取值更丰富

letterSpacing
iOS

对应 CSS letter-spacing 属性

textDecorationColor
iOS

对应 CSS text-decoration-color 属性

textDecorationStyle
iOS

solid, double, dotted, dashed

对应 CSS text-decoration-style 属性,但阉割了 wavy 取值

writingDirection
iOS

auto, ltr, rtl

对应 CSS direction 属性,增加了 auto 取值

Dimension 尺寸(6)

属性名

取值

描述

width

对应 CSS width 属性

minWidth

对应 CSS min-width 属性

maxWidth

对应 CSS max-width 属性

height

对应 CSS height 属性

minHeight

对应 CSS min-height 属性

maxHeight

对应 CSS max-height 属性

Positioning 定位(6)

属性名

取值

描述

position

absolute, relative

对应 CSS position 属性,但阉割了 static, fixed 取值

top

对应 CSS top 属性

right

对应 CSS right 属性

bottom

对应 CSS bottom 属性

left

对应 CSS left 属性

zIndex

对应 CSS z-index 属性

Margin 外部白(7)

属性名

取值

描述

margin

对应 CSS margin 属性,不同的是,它只能定义一个参数,如需分别定义上、右、下、左4个方位的外补白,可以通过下面的单向外部白属性

marginHorizontal

无对应的 CSS 属性。其效果相当于同时设置 marginRight 和 marginLeft

marginVertical

无对应的 CSS 属性。其效果相当于同时设置 marginTop 和 marginBottom

marginTop

对应 CSS margin-top 属性

marginRight

对应 CSS margin-right 属性

marginBottom

对应 CSS margin-bottom 属性

marginLeft

对应 CSS margin-left 属性

Padding 内部白(7)

属性名

取值

描述

padding

对应 CSS padding 属性,不同的是,它只能定义一个参数,如需分别定义上、右、下、左4个方位的内补白,可以通过下面的单向内部白属性

paddingHorizontal

无对应的 CSS 属性。其效果相当于同时设置 paddingRight 和 paddingLeft

paddingVertical

无对应的 CSS 属性。其效果相当于同时设置 paddingTop 和 paddingBottom

paddingTop

对应 CSS padding-top 属性

paddingRight

对应 CSS padding-right 属性

paddingBottom

对应 CSS padding-bottom 属性

paddingLeft

对应 CSS padding-left 属性

Border 边框(20)

属性名

取值

描述

borderStyle

solid, dotted, dashed

对应 CSS border-style 属性,但阉割了 none, hidden, double, groove, ridge, inset, outset 取值,且无方向分拆属性

borderWidth

对应 CSS border-width 属性

borderTopWidth

对应 CSS border-top-width 属性

borderRightWidth

对应 CSS border-right-width 属性

borderBottomWidth

对应 CSS border-bottom-width 属性

borderLeftWidth

对应 CSS border-left-width 属性

borderColor

对应 CSS border-color 属性

borderTopColor

对应 CSS border-top-color 属性

borderRightColor

对应 CSS border-right-color 属性

borderBottomColor

对应 CSS border-bottom-color 属性

borderLeftColor

对应 CSS border-left-color 属性

borderRadius

对应 CSS border-radius 属性

borderTopLeftRadius

对应 CSS border-top-left-radius 属性

borderTopRightRadius

对应 CSS border-top-right-radius 属性

borderBottomLeftRadius

对应 CSS border-bottom-left-radius 属性

borderBottomRightRadius

对应 CSS
border-bottom-right-radius 属性

shadowColor

对应 CSS box-shadow 属性中的颜色定义

shadowOffset

{
width: ,
height:
}

对应 CSS box-shadow 属性中的阴影偏移定义

shadowRadius

在 CSS 中,阴影的圆角大小取决于元素的圆角定义,不需要额外定义

shadowOpacity

对应 CSS box-shadow 属性中的阴影透明度定义

Background 背景(1)

属性名

取值

描述

backgroundColor

对应 CSS background-color 属性

Transform 转换(3)

属性名

取值

描述

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 属性

Flexbox 弹性盒(9)

属性名

取值

描述

flex

对应 CSS flex 属性,但只能为整数值

flexGrow

对应 CSS flex-grow 属性

flexShrink

对应 CSS flex-shrink 属性

flexBasis

对应 CSS flex-basis 属性

flexDirection

row, row-reverse, column, column-reverse

对应 CSS flex-direction 属性

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 取值

Other 其他

属性名

取值

描述

opacity

对应 CSS opacity 属性

overflow

visible, hidden, scroll

对应 CSS overflow 属性,但阉割了 auto 取值

elevation
Android

CSS中没有对应的属性,只在 Android5.0+ 上有效

resizeMode

cover, contain, stretch

CSS中没有对应的属性,可以参考 background-size 属性

overlayColor
Android

string

CSS中没有对应的属性,当图像有圆角时,将角落都充满一种颜色

tintColor
iOS

CSS中没有对应的属性,iOS 图像上特殊的色彩,改变不透明像素的颜色

Valuse 取值

Color 颜色

React Native 支持了 CSS 中大部分的颜色类型:

  • #f00 (#rgb)
  • #f00c (#rgba):CSS 中无对应的值
  • #ff0000 (#rrggbb)
  • #ff0000cc (#rrggbbaa):CSS 中无对应的值
  • rgb(255, 0, 0)
  • rgba(255, 0, 0, 0.9)
  • hsl(360, 100%, 100%)
  • hsla(360, 100%, 100%, 0.9)
  • transparent
  • 0xff00ff00 (0xrrggbbaa):CSS 中无对应的值
  • Color Name:支持了 基本颜色关键字 和 拓展颜色关键字,但不支持 28个系统颜色;

Number 数值

在 React-Native 中,目前仅支持 Number 这一种长度取值。默认缺省了 pt 单位,详细请看 Units 单位 部分。

Units 单位

Pt 点

在 React-Native 中,并不支持百分比单位,目前只支持一种单位,即 pt 绝对长度单位,同时,你在定义时不需要加单位,例如:


var styles = StyleSheet.create({
    box: {
        width: 100,
        height: 50
    }
});

PixelRatio 像素密度

在 React-Native 中,访问设备像素密度的方法由 PixelRatio 类提供。

我们的应用通常都会运行在不同的设备上,并且这些设备的像素密度很有可能各不相同。这会造成一个现象就是:

  • 定义了元素的边框为 1像素,而实际上在不同像素密度的设备上结果不一样,比如:iPhone6 显示为 2像素,iPhone6 Plus 显示为 3像素;
  • 对于一个图片来讲,因为设备的像素密度不同,它也需要对应不同尺寸的规则,以防止图片过小变得模糊;

根据像素密度指定边框厚度

出于对产品体验的一致性,我们会要求不论是在哪种设备上,其边框厚度都应该是相同的。一个取得物理上的相同边框厚度的好方法就是用逻辑尺寸除以像素密度比:

var styles = StyleSheet.create({
    box: {
        borderWidth: 1 / PixelRatio.get(),
        borderStyle: solid
    }
});

上述代码将保证你的应用在所有的设备上(像素密度),都获得 1像素 的边框厚度。PixelRatio 通过 get() 方法来返回设备的像素密度。

相关推荐

JavaScript中常用数据类型,你知道几个?

本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注!作者|慕课网精英讲师Lison这篇文章我们了解一下JavaScript中现有的八个数据类型,当然这并不是JavaScr...

踩坑:前端的z-index 之bug一二(zh1es前端)

IE6下浮动元素bug给IE6下的一个div设置元素样式,无论z-index设置多高都不起作用。这种情况发生的条件有三个:1.父标签position属性为relative;2.问题标签无posi...

两栏布局、左边定宽200px、右边自适应如何实现?

一、两栏布局(左定宽,右自动)1.float+margin即固定宽度元素设置float属性为left,自适应元素设置margin属性,margin-left应>=定宽元素宽度。举例:HTM...

前端代码需要这样优化才是一个标准的网站

  网站由前端和后端组成,前端呈现给用户。本文将告诉您前端页面代码的优化,当然仍然是基于seo优化的。  就前端而言,如果做伪静态处理,基本上是普通的html代码,正常情况下,这些页面内容是通过页面模...

网页设计如何自学(初学网页设计)

1在Dreamweaver中搭建不同的页面,需要掌握HTML的语句了,通过调整各项数值就可以制作出排版漂亮的页面,跟着就可以学习一些可视化设计软件。下面介绍网页设计如何自学,希望可以帮助到各位。Dre...

1、数值类型(数值类型有)

1.1数据类型概览MySQL的数据类型可划分为三大类别:数值类型:旨在存储数字(涵盖整型、浮点型、DECIMAL等)。字符串类型:主要用于存储文本(诸如CHAR、VARCHAR之类)。日期/...

网页设计的布局属性(网页设计的布局属性是什么)

布局属性是网站设计中必不可少的一个重要的环节,主要用来设置网页的元素的布局,主要有以下属性。1、float:该属性设置元素的浮动方式,可以取none,left和right等3个值,分别表示不浮动,浮在...

Grid网格布局一种更灵活、更强大的二维布局模型!

当涉及到网页布局时,display:flex;和display:grid;是两个常用的CSS属性,它们都允许创建不同类型的布局,但有着不同的用法和适用场景。使用flex布局的痛点当我们使...

React 项目实践——创建一个聊天机器人

作者:FredrikStrandOseberg转发链接:https://www.freecodecamp.org/news/how-to-build-a-chatbot-with-react/前言...

有趣的 CSS 数学函数(css公式)

前言之前一直在玩three.js,接触了很多数学函数,用它们创造过很多特效。于是我思考:能否在CSS中也用上这些数学函数,但发现CSS目前还没有,据说以后的新规范会纳入,估计也要等很久。然...

web开发之-前端css(5)(css前端设计)

显示控制一个元素的显示方式,我们可以使用display:block;display:inline-block;display:none;其中布局相关的还有两个很重要的属性:display:flex;和...

2024最新升级–前端内功修炼 5大主流布局系统进阶(分享)

获课:keyouit.xyz/14642/1.前端布局的重要性及发展历程前端布局是网页设计和开发的核心技能之一,它决定了页面元素如何组织和呈现。从早期的静态布局到现代的响应式布局,前端布局技术经历了...

教你轻松制作自动换行的CSS布局,轻松应对不同设备!

在网页设计中,自动换行的CSS布局是非常常见的需求,特别是在响应式设计中。它可以让网页内容自动适应不同屏幕尺寸,保证用户在不同设备上都能够获得良好的浏览体验。本文将介绍几种制作自动换行的CSS布局的方...

晨光微语!一道 CSS 面试题,伴你静享知识治愈时光

当第一缕阳光温柔地爬上窗台,窗外的鸟鸣声清脆悦耳,空气中弥漫着清新的气息。在这宁静美好的清晨与上午时光,泡一杯热气腾腾的咖啡,找一个舒适的角落坐下。前端的小伙伴们,先把工作的疲惫和面试的焦虑放在一边,...

2023 年的响应式设计指南(什么是响应式设计优缺点)

大家好,我是Echa。如今,当大家考虑构建流畅的布局时,没有再写固定宽度和高度数值了。相反,小编今天构建的布局需要适用于几乎任何尺寸的设备。是不是不可思议,小编仍然看到网站遵循自适应设计模式,其中它有...