弹性盒子

75 阅读3分钟

display: flex 写于父元素上

  • 弹性盒子是为了适应所有类型的显示设备和显示大小
  • 父元素叫伸缩容器,子元素叫伸缩项目
  • text-align 在弹性盒子上不生效

flex-direction

  • 写于父元素上
  • 定义主轴方向(主轴是贯穿伸缩项目的轴,主轴会根据伸缩项目的方向而改变)
  • 值:

row从左到右(默认值)

image.png

row-reverse从右到左

image.png

column从上到下

image.png

column-reverse从下到上

image.png

flex-wrap

  • 写于父元素上
  • 设置伸缩项目换行
  • 值:

nowrap不换行(指定宽度无效,默认按比例换行)

image.png

wrap换行(仅对指定宽度超过伸缩容器时生效)

image.png

wrap-reverse反向换行(若竖向排列,则会从右侧开始向左侧排列;若横向排列,则会从下向上排列)

image.png

flex-flow

  • 写于父元素上
  • 设置伸缩项目方向+伸缩项目换行(可单独设置,设置顺序也可换)
  • 例:flex-flow: column wrap

justify-content

  • 写于父元素上
  • 设置主轴每行对齐方式
  • 值:

flex-start伸缩项目向起始位置靠齐

image.png

flex-end伸缩项目向结束位置靠齐

image.png

center伸缩项目向中间位置靠齐

image.png

space-between两端的伸缩项目靠着父元素的两端,剩余的项目平均分配剩余空间

image.png

space-around将伸缩项目平均分配每行空间(两端仍保留空间)

image.png

align-items

  • 写于父元素上
  • 设置每行侧轴对齐方式(侧轴是垂直于主轴的轴)
  • 值:

flex-start侧轴起点

image.png

flex-end侧轴终点

image.png

center侧轴中心

image.png

baseline根据伸缩项目的基线对齐

image.png

stretch伸缩项目拉伸填充整个伸缩容器

image.png

align-self

  • 写于子元素上
  • 与align-items用法相同,并可覆盖align-items
  • 用于单独设置伸缩项目在伸缩容器中的侧轴对齐方式

align-content

  • 写于父元素上
  • 设置多个伸缩行的对齐方式(在整个父元素的高度中进行调整)
  • 值:

flex-start 各行向伸缩容器的起点位置堆叠

image.png

flex-end各行向伸缩容器的终点位置堆叠

image.png

center各行向伸缩容器的中心位置堆叠

image.png

space-between 各行在伸缩容器中平均分布

image.png

space-around各行平均分布,两端保留空间

image.png

stretch各行伸展,占用剩余空间

image.png

order

  • 写于子元素上
  • 设置显示顺序,改变伸缩项目的排列顺序
  • 值为数字,写几就排第几个,但是排在所有没标号的后面
  • 例: order:1

flex

  • 写于子元素上
  • 若想等宽或等高,可在每个子元素中设置flex: 1
  • 若想等比例显示,可在子元素上分别设置flex: 1flex: 2flex: 3...
  • 0 1 auto为默认值(分别为flex-grow、flex-shrink、flex-basis)

flex-basis

  • 写于子元素上
  • 伸缩项目在主轴上占据的空间
  • 值:
    • auto (长度等于灵活项目的长度,默认值)
    • 具体数值px/百分比 (规定灵活项目的初始长度)

flex-grow

  • 写于子元素上
  • 当伸缩容器有多余空间时,伸缩项目的放大比例
  • 值:
    • 0 不放大(默认)
    • 整数 放大比例

flex-shrink

  • 写于子元素上
  • 当伸缩容器空间不足时,伸缩项目的缩小比例
  • 值:
    • 1 当空间不足时,自动缩小(默认)
    • 整数 缩小比例

flex-growflex-shrink都是子元素设完宽高后,页面中剩余的空间按比例进行分配。基本值就是固定的宽或高(若主轴为纵向,则设置的为高;若主轴为横向,则设置的为宽)