flex布局

Flexible Box (弹性盒)模型,通常被称为 flexbox,是一种一维的布局模型。使用flex布局,对于以前相对较难实现的样式更加简单,在使用flex以前需要了解一些概念。

轴线

flex布局是相对于两条轴线进行布局,分别是主轴(Main Axis)交叉轴(Cross Axis)主轴可以通过属性flex-direction进行指定,交叉轴则垂直主轴。默认条件下,主轴与交叉轴的方向如图

以开启flex的容器(flex container)的左上顶点为原点,向右为主轴,向下为交叉轴

在这里插入图片描述

Flex 容器

flex容器指的是开启flex布局的元素,其直接子元素又叫做flex元素(flex item)

通过display: flex;display: inline-flex

当元素变为flex容器之后,其直接子元素,不再严格区分块级元素与行内元素

但是容器本身还是区分的,由上面的两个属性值可以看出

使用

想要使用flex就要先开启弹性盒布局,通过设置display属性值为flexinline-flex开启。之后通过设置作用于容器flex 元素的属性来完成布局

作用于容器的属性
  1. flex-direction:设置主轴方向
    • row: 默认值,按行 从左至右
    • row-reverse: 按行 从右至左
    • column:按列 从上至下
    • column-reverse:按列 从下至上

交叉轴与主轴保持垂直

  1. flex-wrap:是否换行
    • nowrap :默认值,不换行,如果超出范围按照主轴进行压缩排列
    • wrap:换行
    • wrap-reverse:换行,但是从主轴的对面开始排列,方向还是按照主轴(按我的理解看是这样)
      在这里插入图片描述

由于flex为一维布局,所以开启换行之后,应该把每一行,看成一个新的容器,

  1. justify-content:主轴对齐方式
    • stretch:均匀排列每个元素
    • flex-start:主轴开始位置开始排列
    • flex-end:主轴结束位置开始排列
    • center:居中
    • space-around:均匀排列每个元素,元素周围分配相同空间
    • space-between:均匀排列每个元素,首尾元素分别放于起点终点
    • space-eveny:均匀排列每个元素,每个元素之间的间隔相同

还有其他属性值justify-content,具体效果还是要自己试一试才知道

  1. align-items:交叉轴对齐方式
    • center:居中
    • flex-start
    • flex-end

align-items:其他属性值

  1. flex-flow:是 1,2的缩写属性
作用于flex元素的属性
  • order:指定元素的排列顺序,默认值是0,数越大排列越后,可以是负数
 <style>
      .box {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-evenly;
        width: 400px;
        height: 400px;
        background-color: #ccc;
        font-size: 28px;
      }
      .box .item {
        width: 100px;
        height: 100px;
        background-color: #3786d6;
      }
      .item1 {
        order: 3;
      }
      .item3 {
        order: -4;
      }
    </style>
 <div class="box">
      <div class="item item1">1</div>
      <div class="item item2">2</div>
      <div class="item item3">3</div>
</div>

在这里插入图片描述

  • flex-shrink:指定 flex 元素的收缩规则
  • flex-grow:指定flex 元素在flex 容器中分配剩余空间的相对比例

结束语

flex布局对于现在还是非常重要的,虽然属性有点多,但是常用的好像就几个,这次复习了感觉还行,熟能生巧,可以通过小青蛙来进行练习,更多的还是要看MDN:flex相关来学习

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值