React Native 样式布局基础知识

这篇具有很好参考价值的文章主要介绍了React Native 样式布局基础知识。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

通过此篇笔记能够学习到如下的几个知识点

  • 在 React Native 中使用样式的一些细节
  • 了解 React Native 的 Flex 布局概念
  • 了解 React Native 的 flex 布局属性
  • React Native 如何添加多样式属性
  • React Native 中绝对布局和相对布局

React Native 中的 Flex 布局概念

1、主轴和交叉轴

在 Flex 布局中存在主轴和交叉轴的概念,主轴和交叉轴的关系如同 X 轴和 Y 轴的关系。在 Flex 布局中是使用 flexDirection 来定义主轴和交叉轴的方向。

  • flexDirection: row | row-reverse | column | column-reverse

当 flexDirection 的值为row或者row-reverse时,主轴和交叉轴的关系如下图:
React Native 样式布局基础知识,ReactNative学习笔记,react native,javascript,学习,笔记
当 flexDirection 的值为 column或者 column-reverse时,主轴和交叉轴的关系如下图:
React Native 样式布局基础知识,ReactNative学习笔记,react native,javascript,学习,笔记

2、x-reverse 属性说明

当 flexDirection 的属性值为row-reverse时,元素的排列表顺序是从右到左的顺序依次排序。

当 flexDirection 的属性值为column-reverse时,元素的排列表顺序是从下到上的顺序依次排序。

Flex 容器对齐方式

Flex 容器中的元素对齐是跟主轴和交叉轴有关。其中 alignItems 属性主要是在交叉轴上对齐,而 justifyContent 属性主要是在主轴上对齐。

  • justifyContent 控制主轴(横轴)上所有 flex 项目的对齐。(以下实例都是按照flexDirection: 'row'为基础来设置参数)

    • flex-start flex 项目的开始端的对齐

    具体布局实例如下:
    React Native 样式布局基础知识,ReactNative学习笔记,react native,javascript,学习,笔记

    • flex-end flex 项目的结束端对齐

    具体布局实例如下:
    React Native 样式布局基础知识,ReactNative学习笔记,react native,javascript,学习,笔记

    • center flex 项目居中对齐

    具体布局实例如下:
    React Native 样式布局基础知识,ReactNative学习笔记,react native,javascript,学习,笔记

    • space-between flex 项目两端对齐且项目间隔均等(左右两端无空隙)

    具体布局实例如下:

React Native 样式布局基础知识,ReactNative学习笔记,react native,javascript,学习,笔记

  • space-around flex 项目间隔均等分

具体布局实例如下:
React Native 样式布局基础知识,ReactNative学习笔记,react native,javascript,学习,笔记

  • space-evenly flex 项目间隔均等分,此属性与 space-around 的不同之处是在于,此值是所有空间都是均等的,而 spance-around 左右两端并不是空间均等而是元素的一半

具体布局实例如下:
React Native 样式布局基础知识,ReactNative学习笔记,react native,javascript,学习,笔记

  • alignItems 控制交叉轴(纵轴)上所有 flex 项目的对齐。(以下实例都是按照flexDirection: 'column'为基础来设置参数)

    基础样式代码:

     container: {
      flexDirection: 'column',
      alignItems: ''
    },
    card: {
      height: 100,
      marginHorizontal: 8,
      borderRadius: 5,
      justifyContent: 'center',
      alignItems: 'center',
    },
    cardOne: {
      width: 100,
      backgroundColor: '#EF5354'
    },
    cardTwo: {
      width: 100,
      backgroundColor: '#50DBB4'
    },
    cardThree: {
      width: 'auto',
      backgroundColor: '#5DA3FA'
    },
    textWhite: {
      color: '#FFFFFF'
    }
    
    • flex-start flex 项目的开始端的对齐

    具体布局实例如下:
    React Native 样式布局基础知识,ReactNative学习笔记,react native,javascript,学习,笔记

    • flex-end flex 项目的结束端对齐

    具体布局实例如下:
    React Native 样式布局基础知识,ReactNative学习笔记,react native,javascript,学习,笔记

    • center flex 项目居中对齐

    具体布局实例如下:
    React Native 样式布局基础知识,ReactNative学习笔记,react native,javascript,学习,笔记

    • stretch flex 项目撑满 flex 容器,当元素设置了高度后,元素的高度只会按照设置的高度来
      React Native 样式布局基础知识,ReactNative学习笔记,react native,javascript,学习,笔记
    • baseline flex 项目的基线对齐

    具体布局实例如下:
    React Native 样式布局基础知识,ReactNative学习笔记,react native,javascript,学习,笔记

  • alignSelf 控制交叉轴(纵轴)上的单个 flex 项目的对齐。此属性设置在子元素上才会有效果。属性值跟 align-items 一样。

  • alignContent 控制“多条主轴”的 flex 项目在交叉轴的对齐。属性值与 justifyContent 一样。

Flex 容器排序设置

  • flexWrap:设置 Flex 容器的子元素总宽度大于 Flex 容器的宽度时子元素的呈现方式。取值有 nowrapwrapwrap-reverse

    • nowrap 当子元素总宽度超出时溢出容器
    • wrap 当子元素总宽度超出时元素会折行并且从左到右排序,具体实例如下:
      React Native 样式布局基础知识,ReactNative学习笔记,react native,javascript,学习,笔记

Flex 子元素大小设置

  • flexGrow:设置子元素所占容器的比例

    等分所有元素实例:

    container: {
      flexDirection: 'row'
    },
    card: {
      flexGrow: 1,
      height: 100,
      margin: 8,
      borderRadius: 5,
      justifyContent: 'center',
      alignItems: 'center',
    },
    

    12 栏切分为 3、3、6 的比例:

    container: {
      flexDirection: 'row'
    },
    card: {
      height: 100,
      margin: 8,
      borderRadius: 5,
      justifyContent: 'center',
      alignItems: 'center',
    },
    
  • flexBasis:为元素设置最小宽度,当父子元素都设置了此属性,子元素的优先级最高。

    为元素设置最小宽度为 60:

    card: {
      height: 100,
      margin: 8,
      flexBasis: 60,
      borderRadius: 5,
      justifyContent: 'center',
      alignItems: 'center',
    },
    
  • flexShrink:元素的收缩比例,数值越大的话,收缩的比例越大。具体实例如下:

    card: {
      height: 100,
      margin: 8,
      borderRadius: 5,
      justifyContent: 'center',
      alignItems: 'center',
    },
    cardOne: {
      flexBasis: 'auto',
      backgroundColor: '#EF5354',
      flexShrink: 0
    },
    cardTwo: {
      flexBasis: 300,
      backgroundColor: '#50DBB4',
      flexShrink: 13
    },
    cardThree: {
      flexBasis: 300,
      backgroundColor: '#5DA3FA',
      flexShrink: 55
    },
    

Flex 行间距和列间距

在 Flex 中间距的设置主要是通过如下三个属性来设置:

  • rowGap 设置元素行之间的间隙
  • columnGap 设置元素列之间的间隙
  • gap 设置元素行/列之间的间隙

具体实例如下:

container: {
  flexDirection: 'row',
  rowGap: 8,
  columnGap: 8
},
card: {
  flex: 1,
  height: 100,
  borderRadius: 5,
  justifyContent: 'center',
  alignItems: 'center',

},
cardOne: {
  backgroundColor: '#EF5354',
},
cardTwo: {
  backgroundColor: '#50DBB4',
},
cardThree: {
  backgroundColor: '#5DA3FA',
},

绝对定位和相对定位

position 属性类型定义了它在其父元素中的定位方式。

  • relative(默认值)默认情况下,元素是相对定位的。top 这意味着元素根据布局的正常流程定位,然后根据、right、bottom 和的值相对于该位置进行偏移 left。偏移量不会影响任何同级或父元素的位置。具体实例如下:
card: {
  width: 100,
  height: 100,
  borderRadius: 5,
  justifyContent: 'center',
  alignItems: 'center',
},
cardOne: {
  backgroundColor: '#EF5354',
  top: 20,
  left: 20
},
cardTwo: {
  backgroundColor: '#50DBB4',
  top: 20,
  left: 40
},
cardThree: {
  backgroundColor: '#5DA3FA',
  top: 20,
  left: 60
},
textWhite: {
  color: '#FFFFFF'
}

运行效果如下:
React Native 样式布局基础知识,ReactNative学习笔记,react native,javascript,学习,笔记

  • absolute 当绝对定位时,元素不会参与正常的布局流程。相反,它的布局独立于其兄弟姐妹。该位置是根据 top、right、bottom 和 left 值确定的。具体实例如下:
cardOne: {
  backgroundColor: '#EF5354',
  position: 'absolute',
  top: 20,
  left: 20
},
cardTwo: {
  backgroundColor: '#50DBB4',
  position: 'absolute',
  top: 30,
  left: 40
},
cardThree: {
  backgroundColor: '#5DA3FA',
  position: 'absolute',
  top: 40,
  left: 60
},

具体效果如下:
React Native 样式布局基础知识,ReactNative学习笔记,react native,javascript,学习,笔记文章来源地址https://www.toymoban.com/news/detail-640872.html

到了这里,关于React Native 样式布局基础知识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Html基础知识学习——圣杯布局、margin负值、等高布局(十七)

    两边页面固定中间页面宽度随着浏览器大小自适应

    2024年02月17日
    浏览(30)
  • react 基础知识(一)

    1、 安装 1 (版本 react 18) 2、初体验 3、JSX(javascript+xml的语法) 概念 :jsx是js和html混合的语法,将组件结构、数据、样式聚合在一起定义组件,会编译成普通的js 遇到 开头,用html规则解析( 标签必须闭合 ) 遇到 { 开头,用js规则解析 样式style等于一个对象( 属性使用驼峰

    2024年02月10日
    浏览(30)
  • React基础知识(二)

    能够知道受控组件是什么 能够写出受控组件 了解非受控组件 受控组件(★★★) HTML中的表单元素是可输入的,也就是有自己的可变状态 而React中可变状态通常保存在state中,并且只能通过 setState() 方法来修改 React讲state与表单元素值value绑定在一起,有state的值来控制表单元

    2024年02月12日
    浏览(23)
  • 一、React基础知识

            第一种:使用原生搭建(可以从国内下载配置镜像、也可以从国外下载)                         指令:1.国内下载:(1:npm config set registry https://r.npm.taobao.org//                                                         (2:npm install -g create-react-app:全局安装

    2024年02月06日
    浏览(35)
  • 【CSS】CSS字体样式【CSS基础知识详解】

    👨‍💻个人主页:@花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 本文章收录于专栏 【CSS】 【CSS专栏】 已发布文章 📁【CSS基础认知】 📁【CSS选择器全解指南】 文字是网页界面上最常见的元素,而文字的字体、大小和文字样式等都可以通过CSS来设置

    2024年02月05日
    浏览(41)
  • 【CSS】CSS文本样式【CSS基础知识详解】

    👨‍💻个人主页:@花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 本文章收录于专栏 【CSS】 【CSS专栏】 已发布文章 📁【CSS基础认知】 📁【CSS选择器全解指南】 📁【CSS字体样式】 属性名: color 作用:设置文本的颜色 属性值: 颜色表示方式 表示含

    2024年01月21日
    浏览(31)
  • Android 基础知识4-2.8 TableLayout(表格布局)详解

    一、TableLayout的概述         表格布局是以行数和列数来确定位置进行排列。就像一间教室,确定好行数与列数就能让同学有序入座。 注意 :我们需要先添加 TableRow 容器,每添加一个就会多一行,然后再往 TableRow 容器中添加其它组件。 二、TableLayout的属性     2.1 、Ta

    2023年04月25日
    浏览(26)
  • 【12】基础知识:React ajax

    了解 React 本身只关注于界面,并不包含发送 ajax 请求的代码 前端应用需要通过 ajax 请求与后台进行交互(json 数据) react 应用中需要集成第三方 ajax 库(或自己封装) 常用的 ajax 请求库 1、jQuery:比较重,如果需要另外引入不建议使用 2、axios:轻量级,建议使用 封装 XmlH

    2024年02月07日
    浏览(35)
  • 第1章、react基础知识;

    一、react学习前期准备; 1、基本概念; ; ; 二、react jsx语法; 三、react元素渲染; 四、react组件基础之创建组件; 五、react props属性; 六、react state 状态; 七、react组件生命周期函数; 八、react setState 是同步还是异步; 九、react 条件渲染; 十、react列表渲染key; 十一、

    2024年04月11日
    浏览(57)
  • Android 基础知识4-2.10 GridLayout(网格布局)详解

    一、GridLayout(网格布局)概述         GridLayout 布局是 Android 4.0 以后引入的新布局,和 TableLayout(表格布局) 有点类似,不过它功能更多,也更加好用,最大的特点是放置的组件自动占据网格的整个区域,每个组件的 大小相同 , 不能改变组件大小 ,只能改变组件之间的水平

    2024年02月16日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包