flex布局入门

177 阅读3分钟

容器的属性

display

  • 决定是否使用flex布局 (flex | inline-flex)

  • flex:默认占满宽度或高度 默认100%

  • image-20211210171614655

  • inline-flex:作为内联块级显示 默认用内联元素撑开

  • image-20211210171741689

flex-direction

  • 决定主轴的方向(即项目的排列方向)

  • row(默认值):主轴为水平方向,起点在左端

  • image-20211210172029342

  • row-reverse:主轴为水平方向,起点在右端

  • image-20211210172103594

  • column:主轴为垂直方向,起点在上沿

  • column-reverse:主轴为垂直方向,起点在下沿

flex-wrap

  • 默认情况下,项目都排在一条线上,如果一条轴线排不下,如何换行

  • nowrap(默认):不换行

  • image-20211210172456417

  • wrap:换行,第一行在上方

  • image-20211210185600114

  • wrap-reverse:换行,第一行在下方

  • image-20211210185635837

flex-flow

  • 是flex-direction属性和flex-wrap的简写形式,默认值是row rowrap

  • .box{flex-flow: row || rowrap}
    

justify-content

  • 定义了项目在主轴上的对其方式

  • flex-start(默认值):左对齐

  • image-20211210190035444

  • flex-end:右对齐

  • image-20211210190043365

  • center:居中

  • image-20211210190119327

  • space-between:两端对齐,项目之间的间隔都相等

  • image-20211210190308641

  • space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍

  • image-20211210190320599

align-items

  • 项目在交叉轴上如何对齐
  • flex-start:交叉轴的起点对齐
  • image-20211210190430210
  • flex-end:交叉轴的终点对齐
  • image-20211210190458622
  • center:交叉轴的中点对齐
  • image-20211210190529782
  • baseline:基线对齐
  • image-20211210190602948
  • stretch(默认值):如果项目未设置高度或设为auto,将沾满整个容器的高度
  • image-20211210190735594

align-content

  • 定义了多根轴线(多行)在交叉轴上的对齐方式
  • flex-start:交叉轴的起点开始simage-20211210190936827
  • flex-end:交叉轴的终点开始
  • image-20211210191029185
  • center:交叉轴的中点对齐
  • image-20211210191049016
  • space-between:与交叉轴两端对齐,轴线之间的间隔平均分布
  • image-20211210191158455
  • space-around:每根轴线两侧的间隔都相等
  • image-20211210191242110
  • stretch(默认值):轴线占满整个交叉轴
  • image-20211210191343946

项目的属性

order

  • 定义项目的排列顺序,数值越小,排列越靠前,默认为0
  • .item4{order:-1}
  • image-20211210192014422

flex-grow

  • 定义项目的放大比例,默认值为0,即如果存在剩余空间,也不放大
  • 如果所有项目的flex-grow属性值都为1,则它们将等分剩余空间
  • 如果一个项目的flex-grow属性为2,其他项目都为1,则前者占据的剩余空间将比其他项多一倍
  • item{flex-grow:1}
  • image-20211210192248606
  • 如果有的项目有flex-grow属性,有的项目有width属性,有flex-grow属性的项目将等分剩余空间
  • image-20211210192443448

flex-shrink

  • 定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小

    如果项目的flex-shrink属性都为1,当空间不足时,都将等比例缩小,如果一个项目的flex-shrink属性为0,其他项目都为1,则空间不足时,前者不缩小,复值对该属性无效

  • .item{flex-shrink:1}

  • image-20211210192655964

flex-basis

  • 定义了在分配多余空间之前,项目占据的主轴空间,浏览器根据这个属性,计算主轴是否有多余空间,它的默认值为auto,即项目的本来大小
  • .item{flex-basis:1}

flex

  • 简写
  • image-20211210193012637

align-self

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