美文网首页
React Native之flexbox布局总结-个人笔记

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

作者: hophia | 来源:发表于2016-06-28 22:04 被阅读668次

    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

    相关文章

      网友评论

          本文标题:React Native之flexbox布局总结-个人笔记

          本文链接:https://www.haomeiwen.com/subject/yywtjttx.html