flexbox布局

Posted 星空守候

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flexbox布局相关的知识,希望对你有一定的参考价值。

flexbox布局(RN基础)

flexbox是Flexible Box的缩写, 弹性盒子布局 主流的浏览器都支持
flexbox布局是伸缩容器(container)伸缩项目 (item)组成
Flexbox布局的主体思想是元素可以改变大小以适应可用空间, 当可用空间变大, Flex元素将伸展大小以填充可用空间, 当Flex元素超出可用空间时将自动缩小。 总之, Flex元素是可以让你的布局根据浏览器的大小变化进行自动伸缩
按照伸缩流的方向布局
伸缩容器有主轴交叉轴组成! 主轴既可以是水平轴, 也可以是垂直轴
flexbox目 前还处于草稿状态, 所有在使用flexbox布局的时候, 需要加上各个浏览器的私有前缀, 即-webkit -moz -ms -o等

伸缩容器的属性

  • 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
  • 5.justify-content
    用来定义伸缩项目 在主轴线的对齐方式, 语法为: justify-content:flex-start(默认值)(从左开始) | flex-end(从右开始) |center(水平居中) | space-between(水平平均分布) | space-around(水平平均分布,两边留一半)
  • 6.align-items
    用来定义伸缩项目 在交叉轴上的对齐方式, 语法为: align-items:flex-start(默认值)(从上开始) | flex-end(从下开始) |center(垂直居中) | baseline(基准线)(容器下方) | stretch(垂直拉伸)
  • 7.align-content
    用来调整伸缩项目 出现换行后在交叉轴上的对齐方式, 语法为: align-content:flex-start(上面) | flex-end(下面) |center(垂直居中) | space-between(垂直平均分布) | space-around(垂直平均分布,两边留一半) | stretch(默认值)

    flexbox布局(伸缩属性)

    伸缩项目的属性

  • 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 flexbasis, 其中第二个和第三个参数为可选参数, 默认值为: 0 1 auto
  • 6.align-self
    用来设置单独的伸缩项目 在交叉轴上的对齐方式, 会覆盖默认的对齐方式, 其语法为: align-self:auto
    | flex-start | flex-end | center | baseline | stretch(伸缩项目 在交叉轴方向占满伸缩容器, 如果交叉轴为
    垂直方向的话, 只有在不设置高度的情况下才能看到效果)
    在React Native中使用 flexbox

    RN目前主要支持flexbox的如下6个属性:

  • 1 .alignItems
    用来定义伸缩项目 在交叉轴上的对齐方式, 语法为: alignItems:flex-start(默认值) | flex-end |
    center | stretch
  • 2.alignSelf
    用来设置单独的伸缩项目 在交叉轴上的对齐方式, 会覆盖默认的对齐方式, 其语法为: alignSelf:auto |
    flex-start | flex-end | center | stretch(伸缩项目 在交叉轴方向占满伸缩容器, 如果交叉轴为垂直方向的
    话, 只有在不设置高度的情况下才能看到效果)
  • 3.flex
    是flex-grow flex-shrink flex-basis这三个属性的缩写, 其语法为: flex:none | flex-grow flex-shrink flexbasis, 其中第二个和第三个参数为可选参数, 默认值为: 0 1 auto
  • 4.flexDirection
    指定主轴的方向 flex-direction:row| row-reverse | column(默认值) | column-reverse
  • 5.flexWrap
  • 6.justifyContent




以上是关于flexbox布局的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 flexbox 获得这样的布局?

flexbox布局的兼容性

我该如何编写这个 CSS Flexbox 布局? [关闭]

css 此代码将删除WordPress库图像周围的边框,并将布局模型更改为CSS flexbox。

Angular2 组件标签破坏了 flexbox 布局

IE11 flexbox:影响布局的不透明度