flex布局是什么?

  • Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。
  • 任何一个容器都可以指定为Flex布局。
  1. .box{
  2. display: flex;
  3. }
  • 行内元素
  1. .box{
  2. display: inline-flex;
  3. }
  • 注意,设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。

容器的属性(6个)

  • flex-direction :属性决定主轴的方向
  • flex-wrap :如果一条轴线排不下,如何换行
  • flex-flow :前两个的简写形式
  • justify-content :定义了项目在主轴上的对齐方式。
  • align-items :定义项目在交叉轴上如何对齐
  • align-content :定义了多根轴线的对齐方式。

flex-direction

  1. row(默认值):主轴为水平方向,起点在左端。
  2. row-reverse:主轴为水平方向,起点在右端。
  3. column:主轴为垂直方向,起点在上沿。
  4. column-reverse:主轴为垂直方向,起点在下沿。
  • 图示
    CSS布局-flex布局 - 图1

flex-wrap

  • 默认情况下,项目都排在一条线(又称”轴线”)上。
  • flex-wrap属性定义,如果一条轴线排不下,如何换行。
  1. .box{
  2. flex-wrap: nowrap | wrap | wrap-reverse;
  3. }
  4. nowrap(默认):不换行
  5. wrap:换行,第一行在上方。
  6. wrap-reverse:换行,第一行在下方。

CSS布局-flex布局 - 图2

flex-flow

  • flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,
  • 默认值为row nowrap。
  1. .box {
  2. flex-flow: <flex-direction> <flex-wrap>;
  3. }

justify-content

  • justify-content属性定义了项目在主轴上的对齐方式。
  1. .box {
  2. justify-content: flex-start | flex-end | center | space-between | space-around;
  3. }
  1. flex-start(默认值):左对齐
  2. flex-end:右对齐
  3. center 居中
  4. space-between:两端对齐,项目之间的间隔都相等。
  5. space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。

CSS布局-flex布局 - 图3

align-items

  • align-items属性定义项目在交叉轴上如何对齐
  1. flex-start:交叉轴的起点对齐。
  2. flex-end:交叉轴的终点对齐。
  3. center:交叉轴的中点对齐。
  4. baseline: 项目的第一行文字的基线对齐。
  5. stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器

CSS布局-flex布局 - 图4

align-content

  • align-content属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。
  1. ### align-content: flex-start | flex-end | center | space-between | space-around | stretch;
  2. }

flex