第二天 Flex布局学习| 青训营笔记

88 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第二天

flex布局初识

image.png

<body>
  <div>
    <span>1</span>
    <span>2</span>
    <span>3</span>
  </div>
</body>
  <style>
    div {
      display: flex;
      width: 80%;
      height: 300px;
      background-color: pink;
    }
    div span {
      height: 100px;
      background-color: skyblue;
      margin-right: 5px;
      flex: 1;
    }
  </style>

设置父盒子为flex,子盒子flex:1,则可以对容器进行平均分配。

flex布局原理

flex是flexible Box的缩写,意思是弹性布局。任何一个容器都可以指定为flex布局。采用flex布局的元素成为flex容器,它的所有子元素自动成为容器成员。

注意:当父盒子设置为flex布局后,子元素的float、clear和vertical-align属性将失效。

flex布局父项常见属性

  • flex-direction:设置主轴的方向 (重要)
    • row 默认值从左到右
    • row-reverse 从右到左
    • colomn 从上到下
    • column-reverse 从下到上
  • justify-content:设置主轴上的子元素排列方式 (重要)
    • flex-start 默认值从头部开始
    • flex-end 从尾部开始排列
    • center 在主轴居中对齐
    • space-around 平分剩余空间
    • space-between 先两边贴边 再平分剩余空间 (重要)
  • flex-wrap:设置子元素是否换行,默认情况不换行,如果装不下,会将原来子元素进行缩小显示
    • nowrap 默认值,不换行
    • wrap 换行
  • align-items:设置侧轴上的子元素排列方式(单行)
    • flex-start 默认值从上到下
    • flex-end 从下到上
    • center 挤在一起居中(垂直居中)
    • stretch 拉伸
  • align-content:设置侧轴上的子元素的排列方式(多行),只能用于子项出现换行的情况,在单行是没有效果的
    • flex-start 默认值在侧轴的头部开始排列
    • flex-end 在侧轴的尾部开始排列
    • center 侧轴中间
    • space-around 子项在侧轴平分剩余空间
    • space-between 子项在侧轴先分布在两头,再平分剩余空间
    • stretch 设置子项元素高度平分父元素高度
  • flex-flow:复合属性,相当于同时设置了flex-direction和flex-wrap

flex布局子项常见属性

  • flex属性:定义子项分配剩余空间,用flex来表示占多少分数。

    • flex: 1;
  • align-self 控制子项自己在侧轴上的排列方式

  • order 属性定义项目的排列顺序,数值越小,排列越靠前,默认为0

    • order:-1;