美文网首页
flex弹性盒模型布局

flex弹性盒模型布局

作者: 小丘啦啦啦 | 来源:发表于2019-05-30 19:53 被阅读0次

一、说明
传统基于盒子模型,运用浮动、定位进行布局,但对于那些特殊布局非常不方便。
2009,css3新推出了 flex 弹性盒模型布局,可以简便、完整、响应式地实现各种页面布局。
二、基本概念

  • flex至少要有两层元素,有父级和子级。父级,采用flex布局的元素,称为“容器,内部提供给子级(项目)进行排列;子级,父级的所有子元素自动成为容器成员,称为“项目”。
  • 容器默认存在两根轴,水平方向的主轴(main axis);垂直方向的交叉轴(cross axis)。两轴永远垂直
  • 主轴的开始位置(与边框的交叉点)叫做 main start,结束位置叫 main end;交叉轴开始位置叫 cross start,结束位置叫 cross end
  • 单个项目占据主轴的空间叫 main size,占据的交叉轴空间叫 cross size
  • 容器display:flex;,项目(子元素)默认沿主轴上排列、不换行(项目总宽度小于容器宽度,正常排列;项目总宽度超过容器宽度,项目本身宽度失效,均分容器宽度——这在传统布局不好实现均分)

三、flex容器的属性

1、主轴方向 flex-direction

  • row,默认值,主轴为水平方向,起点在左端(项目水平方向排列)
  • row-reverse,主轴为水平方向,起点在右端
  • column,主轴为垂直方向,起点在上沿(项目竖直方向排列)。注意:如果项目设置了行高line-height,会强制撑开高度,而不会自动根据容器高度进行均分
  • column-reverse,主轴为垂直方向,起点在下沿

2、主轴上的对齐方式 justify-content (以主轴方向为默认值为例)

  • flex-start,默认值,左对齐,(实际:与主轴的起点处对齐)
  • flex-end,右对齐,(实际:与主轴的终点对齐)
  • center,居中,即全部项目挤在一起在主轴上居中(这样就不用像原来一样全部子元素外面再包一层然后进行居中)
  • space-around,每个项目两侧间隔相等(即会形成项目之间的间隔 比 项目与边框的间隔大一倍)
  • space-between,两端对齐,项目之间的间隔相等

3、交叉轴上的对齐方式 align-items

  • flex-start,交叉轴的起点对齐
  • flex-end,交叉轴的终点对齐(可以做柱状图)
  • center,交叉轴的中心对齐
  • baseline,项目的第一行文字的基线对齐
  • stretch,默认值,项目未设置高度或者设为auto,将占满整个容器的高度

4、项目换行 flex-wrap
  • nowrap,默认值,不换行。即如果项目总宽度大于容器宽度,则项目会均分容器宽度进行排列(主轴方向为水平)

  • wrap,换行,多余的换行到(主轴)下面;主轴竖直方向则换行到右边(发现:如果交叉轴方向项目总高度小于容器高度,还会均分剩余高度加个margin-bottom一样的东西)


  • wrap-reverse,换行,多余的换行到(主轴)上面;主轴竖直方向则换行到左边


5、多轴线的对齐方式 align-content
在换行状态下(即会有多跟轴线),每一行元素在交叉轴上的对齐方式。默认情况下即均匀的排列(和上面所说的均分剩余高度加个margin-bottom...一样的东西)

  • flex-start,与交叉轴的起点对齐
  • flex-end,与交叉轴的终点对齐
  • center,与交叉轴的中点对齐
  • space-between,与交叉轴两端对齐,轴线间的间隔平均分布
  • space-around,每根轴线两侧的间距都相等(即会形成轴线间的间隔 比 轴线与边框的间隔大一倍)
  • strech,默认值,轴线占满整个交叉轴

6、flex-direction和flex-wrap的组合 flex-flow
默认:flex-flow:row nowrap;

四、flex项目的属性(不常用)
1、项目排列顺序 order
用于定义项目的排列顺序,数值越小,排列越靠前,默认是order:0;
2、项目放大比例 flex-grow
定义项目的放大比例。默认为0,不放大;都为1,则等分剩下的空间(如果有的话);不同的数值,即按比例分配剩下的空间。
3、项目缩小比例flex-shrink
默认1,当空间不足时,都将等比例缩小。0不缩小。
4、flex-basis
定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。
5、组合属性 flex

  • flex-grow, flex-shrink 和 flex-basis的简写,默认值为flex:0 1 auto;
  • 该属性有两个快捷值:auto (1 1 auto) 和 none (0 0 auto)。
    建议优先使用这个属性,而不是单独写三个分离的属性,因为浏览器会推算相关值。
  • 后两个属性可选。如果只用一个值,则定义的是各个项目所占比例。第二块设为flex:2;,其他默认1。

6、align-self
允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。

.item {
  align-self: auto | flex-start | flex-end | center | baseline | stretch;
}

相关文章

  • flex 弹性布局盒模型

    flex 弹性布局盒模型 设置弹性盒模型 display:flex (新版) display:-webkit-b...

  • RN笔记:样式布局总结

    Flexbox布局 flex 弹性布局 number用于设置弹性盒模型分配空间,比如: flex:1 flexDi...

  • Flex布局

    Flex Flex:弹性布局 React Native 的默认布局是flex布局 如果将父元素设置成弹性盒模型模式...

  • [读]响应式布局:CSS3弹性盒flex布局模型

    响应式布局:CSS3弹性盒flex布局模型

  • CSS中的Flex布局

    Flex 弹性布局 概念 Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大...

  • 弹性布局总结

    1.flex弹性布局学习总结 2.弹性盒模型布局使用 布局案例: ...

  • flex布局

    一、Flex布局 Flex是Flexible Box的缩写,意为"弹性布局盒模型",用来为盒状模型提供最大的灵活性...

  • CSS面试考点之Flex布局和Grid网格布局

    1、flexbox(弹性盒布局模型) Flexible Box简称flex,意为”弹性布局”,可以简便、完整、响应...

  • React Native - Flex布局

    React Native - Flex布局 Flex布局概述 概念:弹性盒子布局 历史:性盒模型,该布局方案由W3...

  • 弹性盒模型

    弹性盒模型 对于某个元素只要声明了 display:flex;,那么这个元素就成为了弹性容器,具有flex弹性布局...

网友评论

      本文标题:flex弹性盒模型布局

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