前端面试—flex布局

171 阅读2分钟

一、什么是flex布局及其特点

  • Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性;
  • 应用:垂直水平居中;
  • 设置为flex布局的元素float、clear、vertical-align失效。

二、flex布局使用

  • 通过给元素添加display: flex将父盒子变成flex容器,其中的子项为flex项目
  • 父项常见属性
    • flex-direction:主轴的方向
      • row(默认):x轴(从左到右)
      • column:y轴(从上到下)
      • row-reverse:x轴(从右到左)
      • column-reverse:y轴(从下到上)
    • flex-wrap:主轴排列不下时是否换行
      • wrap(默认):换行,第一行在上方
      • wrap-reverse:换行,第一行在下方
      • nowrap:不换行
    • flex-flow(flex-direction + flex-wrap)
    • ⭐justify-content:项目在主轴上的排列方式
      • flex-start(默认):从左向右
      • flex-end:从右向左
      • ⭐cneter:居中排列
      • space-around:先两端对齐,再平分剩余空间
      • ⭐space-between:项目之间距离相等,每两个项目之间的间距是首尾项目距离边框的两倍
      • space-evenly
    • align-items:项目在交叉轴上的排列方式
      • flex-start:起点开始排列
      • flex-end:终点开始排列
      • center:中点对齐
      • baseline:基线对齐
      • stretch:拉伸对齐
    • align-content:多根轴线的对齐方式
      • flex-start
      • flex-end
      • center
      • space-around
      • space-between
      • stretch
  • 子项常见属性
    • order:项目的排列顺序 数值越小排列越靠前
    • flex-grow 有剩余空间时项目的放大比例,默认为0,即空间有剩余时不放大,给定的属性值就是该项目占的比例
    • flex-shrink 空间不足时项目的缩小比例,默认为1,即空间不足时等比例缩小,如果设置为0,则不缩小
    • flex-basis 分配剩余空间前,项目占有的主轴空间,可设置成具体的值
    • ⭐flex(grow + shrink + basis)
    • align-self:设置单个项目与其他项目有不同的排列方式

三、面试题

  • flex: 1; = flex: 1 1 任意数字加任意长度单位,实现的效果是空间等分
  • flex: auto; = flex: 1 1 auto
  • flex: none; = flex: 0 0 auto