React Native之flexbox布局总结-个人笔记

flexbox是Flexible Box的缩写, 弹性盒子布局, 主流的浏览器都支持

flexbox布局是伸缩容器(container)和伸缩项目(item)组成

Flexbox布局的主体思想是元素可以改变大小以适应可用空间, 当可用空间变大, flex元素将伸展大小以填充可用空间, 当flex元素超过可用空间时, 将自动缩小, 总之, flex元素是可以让你的布局根据浏览器的大小变化进行自动伸缩

按照伸缩流的方向进行布局

伸缩容器有主轴和交叉轴组成, 主轴既可以是水平轴也可以是垂直轴

flexbox目前还处于草稿状态, 所有在使用flexbox布局的时候, 需要加上各种浏览器的私有前缀, 即-webkit -moz -ms -o等

web中flexbox的使用

伸缩容器的属性: 默认值都是第一个
1.display
display: flex | inline-flex
块级伸缩容器 行内级伸缩容器

2.flex-direction
指定主轴的方向, flex-direction:row | row-reverse | column | column-reverse

3.flex-wrap
伸缩容器在主轴方向空间不足的情况下, 是否换行以及该如何换行
flex-wrap: nowrap | wrap | wrap-reverse

4.flex-flow
是flex-direction 和 flex-wrap的缩写版本, 它同时定义了伸缩容器的主轴和侧轴, 其默认值为row nowrap ( flex-flow: row nowrap;)

5.justify-content
用来定义伸缩项目在主轴的对齐方式, 语法为:
justify-content: flex-start | flex-end | center | space-between | space-around

6.align-items
用来定义伸缩项目在交叉轴上面的对齐方式, 语法为:
align-items: flex-start | center | flex-end | baseline | stretch |

7.align-content
用来调整伸缩项目出现换行后在交叉轴上的对齐方式, 语法为:
align-content: stretch | flex-start | flex-end | center | space-between | space-around
所以肯定先要换行, 跟justify-content差不多

伸缩项目的属性
1.order
定义项目的排列顺序, 数值越小, 排列越靠前, 默认值为0, 语法为:
order: 整数值;

2.flex-grow
定义伸缩项目的放大比例, 默认值为0, 即表示如果存在剩余空间, 也不放大, 语法为:
flex-grow: 整数值;

3.flex-shrink
定义伸缩项目的收缩能力, 默认值为1, 语法为:
flex-shrink: 整数值;

4.flex-basis
用来设置伸缩项目的基准值, 剩余的空间按比率进行伸缩, 其语法为:
flex-basis: length | auto, 默认值为auto

5.flex
是flex-grow flex-shrink flex-basis这三个属性的缩写, 语法为:
flex: none | flex-grow flex-shrink flex-basis, 其中第二个和第三个参数为可选参数, 默认值为0, 1, auto

6.align-self
用来设置单独的伸缩项目在交叉轴上的对齐方式, 会覆盖默认的对齐方式, 语法为:
align-self: auto | flex-start | flex-end | center | baseline | stretch
(stretch 伸缩项目在交叉轴方向占满伸缩容器, 如果交叉轴为垂直方向的话, 只有在不设置高度的情况下, 才能看到效果)

react-native使用flexbox

RN目前主要支持flexbox的如下属性:
1.alignItems
用来定义伸缩项目在交叉轴上的对齐方式, 语法为:**
alignItems: flex-start | flex-end | center | stretch **

2.alignSelf
用来设置单独的伸缩项目在交叉轴上的对齐方式, 会覆盖默认的对齐方式, 语法为:
alignSelf: auto | flex-start | flex-end | center | stretch
(stretch 伸缩项目在交叉轴方向占满容器, 如果交叉轴为垂直方向的话, 只有在不设置高度的情况下, 才能看到效果)

3.flex
是flex-grow flex-shrink flex-basis这三个属性的缩写, 其语法为:
flex: none | flex-grow flex-shrink flex-basis , 其中第二个和第三个参数为可选参数, 默认值为:0 1 auto

4.flexDirection**
指定主轴的方向, 语法:
flexDirection: row | row-reverse | column(默认值) | column-reverse

5.flexWrap
伸缩容器在主轴方向空间不足的情况下, 是否换行以及该如何换行
flexWrap: nowrap | wrap | wrap-reverse

6.justifyContent
用来定义伸缩项目在主轴的对齐方式, 语法为:
justifyContent: flex-start | flex-end | center | space-between | space-around

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • H5移动端知识点总结 阅读目录 移动开发基本知识点 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇阅读 4,686评论 0 26
  • 移动开发基本知识点 一.使用rem作为单位 html { font-size: 100px; } @media(m...
    横冲直撞666阅读 3,569评论 0 6
  • 前言 FlexBox是css3的一种新的布局方式,天生为解决布局问题而存在的它,比起传统的布局方式,我们使用Fle...
    zevei阅读 1,448评论 23 3
  • 前言 学习本系列内容需要具备一定 HTML 开发基础,没有基础的朋友可以先转至 HTML快速入门(一) 学习 本人...
    珍此良辰阅读 4,576评论 2 19
  • 一直以来支付宝都想做社交这部分,究其原因是因为微信已经抄了它的后院。为了保证在后期的发展中不至于被完全的工具化,扩...
    財運旺獅阅读 235评论 0 0