基本概念

  • flex是flexble box的缩写,意思为弹性布局,用来为盒装模型提供最大的灵活性

  • 任何一个容器都可以指定为flex布局(块级元素和行内元素都可以使用flex)

  • 父元素设为flex布局后,子元素的float、clear、vertical-align将失效

  • 采用flex布局的元素,称为flex容器(container),它所有的子元素自动成为容器成员,称为flex项目(item)

  • 通过给父盒子添加flex属性,来控制子盒子的位置和排列方式

父项常见属性

  • display: flex:设置为flex布局
  • flex-direction:设置主轴的方向
  • justify-contont:设置主轴上子元素排列方式
  • flex-wrap:设置子元素是否换行
  • align-content:设置侧轴上的子元素排列方式(多行)
  • align-items:设置侧轴上的子元素排列方式(单行)
  • flex-flow:复合属性,相当于同时设置flex-direction和flex-wrap

flex-direction

属性值说明
row默认值,从左到右
row-reverse从右到左
column从上到下
column-reverse从下到上

justify-contont

设置主轴上子元素的排列方式

属性值说明
flex-start默认值,从头部开始
flex-end从尾部开始
center在主轴居中对齐
space-around平分剩余控件
space-between先两边贴边,再平分剩余空间

flex-wrap

设置子元素是否换行,默认不换行

属性值说明
nowrap默认值,不换行
wrap换行

align-items

设置侧轴上的子元素排列方式(单行)

属性值说明
flex-start默认值,从头部开始
flex-end从尾部开始
center在侧轴居中对齐
stretch拉伸,如果子元素没有给高度,则拉伸到和父元素一样高

flex-flow

flex-direction和flex-wrap的复合属性

flex-flow:row wrap;

子项常见属性

  • flex:剩余空间中,子项目占的份数
  • align-self:控制子项自己在侧轴的排列方式
  • order:属性定义子项的排列顺序(前后顺序)

flex

除开父盒子中,已经给了宽度的子盒子,剩余空间,按份数,分配给有flex属性的子元素

section div:nth-child(3) {
    flex: 1;
    background-color: blue;
}

align-self

控制子项在侧轴的排列方式

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

align-self: flex-end;

order

定义项目的排列顺序

数值越小,排列越靠前,默认为0,注意与z-index的区别

背景颜色渐变

background: -webkit-linear-gradient(left, red, blue);
background: -webkit-linear-gradient(left top, red, blue);
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐