• Flex布局使用



    前言

    个人为前端小白,对于前端的学习为使用层面;对于flex这里只记录了用到的属性,没有更加深入。可以访问参考链接等等。


    一、什么是Flex

    Flex 全称 Flexible box 布局模型,通常称为 flexbox 或 flex,也称为弹性盒子或弹性布局。一种比较高效率的 css3 布局方案。
    flex 有两根轴线,分别是主轴和交叉轴,主轴的方向由 flex-diretion 属性控制,交叉轴始终垂直于主轴。
    容器为项目的分布提供的空间,轴线则控制项目的排列跟对齐的方向, flex 是一种一维的布局,一个容器只能是一行(左右)或者一列(上下),通过主轴控制项目排列的方向(上下/左右),交叉轴配合实现不同的对齐方式。有时候一行放不下,可以实现多行的布局,但是对于 flex 来说,新的一行就是一个新的独立的 flex 容器。

    二、具体使用

    初始样式:

    <div id="app">
        <div class="f1">f1div>
        <div class="f2">f2div>
        <div class="f3">f3div>
    div>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    在这里插入图片描述

    • 在父容器上添加flex属性
    #app {
       /* 排列的对齐方式由flex决定,block,float, vertical-algin等失效 */
        display: flex; 
    }
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    • 当不给f2容器提供height的时候, 子容器会自动膨胀到和父容器相同的高度
    .f2 {
        flex-grow: 30%;
        background-color: aqua;
    }
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    • flex-direction可以改变容器的排列顺序,默认是row,表示从左至右进行排序;flex-wrap表示是否支持换行,默认为nowrap,此时当容器width总和超过父容器,不换行而是对子容器进行压缩
    #app {
      /* 排列的对齐方式由flex决定,block,float, vertical-algin等失效 */
        display: flex; 
        /* 当容器水平中的item超过范围不会换行,而是压缩变小 */
        /* 改变主轴容器的排列顺序 */
        /* flex-direction: row-reverse;   */
        /* 是否支持换行 */
        /* flex-wrap: wrap; */
        /* 上述两种情况的结合 */
        flex-flow: row wrap;  
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述
    在这里插入图片描述

    • justify-content 用于指定item在主轴上的对齐方式,如:
    #app {
        /* 上述两种情况的结合 */
        flex-flow: row nowrap;  
        /* 项目在主轴上的对齐方式 */
        justify-content: space-between;
        /* background-color: rgb(236, 236, 137); */
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    • flex-grow, 对剩余空间进行划分;通过flex-grow设定元素对于剩余空间划分的比重
      在这里插入图片描述
    .f1, .f2, .f3 {
       /* 设置容器item主轴的排列方式,占据剩余空间大小 */
        /* flex-grow: 33;   */
        width: 150px;
        /* item如果不指定height,交叉轴会充满整个容器 */
        /* height: 200px;   */
        background-color: pink;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    此时上述情况为三个子容器都设置 flex-grow:33,因此容器比值为1:1:1

    在这里插入图片描述

    • flex-shrink: 指定元素的收缩速率,当拉扯浏览器会调整item的大小
    .f3 {
       /* 指定元素的收缩速率 */
        flex-shrink: 999;  
        height: 150px;
        background-color: rgb(99, 248, 122);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    参考链接

    Flex 布局教程,前端必会的基础技能,面试必会基础

  • 相关阅读:
    html样式排版
    Spring框架对redis的封装
    【人工智能 & 机器学习 & 深度学习】基础选择题 31~60题 练习(题目+答案),亦含 判断题
    Python标准库中的编码风格整理
    .NET序列化 serializable,反序列化
    达摩院WIDER FACE榜首近两年人脸检测MogFace CVPR论文深入解读
    【深度学习实验】卷积神经网络(六):自定义卷积神经网络模型(VGG)实现图片多分类任务
    【c#】关于web api发布
    Windows编程-进程
    关于Java上下转型
  • 原文地址:https://blog.csdn.net/qq_45888932/article/details/126058118