Flex布局

233 阅读2分钟

Flex布局模型构成

  • 设置方式 :父元素添加 display: flex,子元素可以自动的挤压或拉伸。

  • div中的子元素发生一些改变:

    ​ 1. 设置了flex的盒子 称为 父项

    ​ 2. 盒子里的子元素 称为 子项

  • 具体变化:

    ​ 1. 不再区分块级行内和行内块,全都可以设置宽和高。

    ​ 2. 子项:默认的宽和高,宽度由内容撑开,高度等于父项的高。

    ​ 3. 子项:使用浮动没有效果,使用定位、margin、transform都有效。

    ​ 4. 默认情况下,子项总宽度大于父项的宽也不会换行,flex不会换行,只会压缩自身的宽度。

主轴对齐方式

  • 使用 justify-content 调节元素在主轴的对齐方式。

    (默认的主轴是X轴)

  • 设置主轴对齐方式:

    • 左对齐:flex-start
    • 右对齐:flex-end
    • 居中对齐:center
    • 两侧对齐,空白间距在盒子之间:space-between
    • 间隔存放,空白间距在盒子两侧:space-around
    • 盒子与容器之间间距相等:space-evenly

侧轴对齐方式

  • 使用align-items调节元素在侧轴的对齐方式。

    (侧轴默认为Y轴,子项为单行的时候使用)

1647531254936.png

水平居中:justify-content: center;

垂直居中:align-items: center;

  • 使用align-content设置侧轴上的子元素的排列方式。

    (只能用于子项出行换行/多行的情况)

1647531223682.png

伸缩比

  • 使用flex属性修改弹性盒子伸缩比。
  • 使用align-self 设置子项在侧轴上的对齐方式。
  • 设置子项的宽度:flex: 1 ;

主轴方向

  • 使用 flex-direction 改变元素排列方向。

  • 主轴默认水平方向:

    • 从左到右:row
    • 从右到左:row-reverse
  • 侧轴默认是垂直方向:

    • 从上到下:column
    • 从下到上:column-reverse

弹性盒子换行

  • 使用 flex-wrap 实现弹性盒子多行排列效果。
  • 换行显示 : flex-wrap: wrap;
  • 调整行对齐方式 :align-content