flex 布局相关属性的使用

news2024/11/26 7:40:11

简单概述

  • 为元素添加 display:flex; 的属性后,当前元素被视为弹性布局的盒子容器(box),其子元素被视为弹性布局项目(item)。
  • item 会在 box 内灵活布局,解决了对齐、分布、尺寸等响应式问题。

演示 demo

<template>
    <div class="mainBox">
        <div class="box">
            <div
                v-for="(item, index) in data"
                :key="index"
                class="item"
                :style="{
                    background: item.background, height: item.height, width: item.width,
                }"
            >
                {{ item.msg }}
            </div>
        </div>
    </div>
</template>
<script>
export default {
    data() {
        return {
            data: [
                { msg: "111", background: "#3E445E", width: "100px", height: "50px", },
                { msg: "222", background: "#D0D3DA", width: "100px", height: "60px", },
                { msg: "333", background: "#505A9B", width: "100px", height: "70px", },
                { msg: "444", background: "#7394CD", width: "100px", height: "80px", },
                { msg: "555", background: "#F1E2D0", width: "100px", height: "90px", },
                { msg: "666", background: "#F6CFA3", width: "100px", height: "100px", },
                { msg: "777", background: "#E18792", width: "100px", height: "110px", },
                { msg: "888", background: "#907AC3", width: "100px", height: "120px", },
            ],
        };
    },
};
</script>
<style lang="less" scoped>
.mainBox {
    width: 100%;
    height: 100%;
}
.box {
    display: flex;
    padding: 40px;
    border: 1px solid #333;
    .item {
        color: #fff;
    }
}
</style>

下述属性演示都在以上代码的基础上进行

用于盒子容器(box)的属性

flex-direction

  • 设置 box 内弹性 item 的方向
  • 取值:row / row-reverse / column / column-reverse
  • flex-direction: row; 行模式-从左到右排列(默认值)
    .box {
    	display: flex;
        padding: 40px;
        border: 1px solid #333;
        flex-direction: row;
    }
    
    flex-direction: row;
  • flex-direction: row-reverse; 行模式-从右到左排列
    .box {
    	display: flex;
        padding: 40px;
        border: 1px solid #333;
        flex-direction: row-reverse;
    }
    
    flex-direction: row-reverse;
  • flex-direction: column; 列模式-从上到下排列
    .box {
    	display: flex;
        padding: 40px;
        border: 1px solid #333;
        flex-direction: column;
    }
    
    flex-direction: column;
  • flex-direction: column-reverse; 列模式-从下到上排列
    .box {
    	display: flex;
        padding: 40px;
        border: 1px solid #333;
        flex-direction: column-reverse;
    }
    
    flex-direction: column-reverse;

flex-wrap

  • box 在必要的时候换行
  • 取值:nowrap / wrap
  • flex-wrap: nowrap; 不换行(默认值)
    .box {
    	display: flex;
        padding: 40px;
        border: 1px solid #333;
        flex-wrap: nowrap;
    }
    /* 减小 box 宽度时,item 的宽度失效,被压缩 */
    
    flex-wrap: nowrap;
  • flex-wrap: wrap; 换行
    .box {
    	display: flex;
        padding: 40px;
        border: 1px solid #333;
        flex-wrap: wrap;
    }
    /* 减小 box 宽度时,item 的宽度不变,不会被压缩,自动换行 */
    
    在这里插入图片描述

justify-content

  • 设置 box 内弹性 item 的对齐分布方式
  • 取值:flex-start / flex-end / center / space-between / space-around / space-evenly
  • 为方便观察不同属性的对比,移除了 boxpadding 属性
  • justify-content: flex-start; 起点对齐(默认值)
    .box {
    	display: flex;
        border: 1px solid #333;
        justify-content: flex-start;
    }
    
    justify-content: flex-start;
  • justify-content: flex-end; 结束点对齐
    .box {
    	display: flex;
        border: 1px solid #333;
        justify-content: flex-end;
    }
    
    justify-content: fflex-end;
  • justify-content: center; 居中对齐
    .box {
    	display: flex;
        border: 1px solid #333;
        justify-content: center;
    }
    
    justify-content: center;
  • justify-content: space-between; 两端对齐
    .box {
    	display: flex;
        border: 1px solid #333;
        justify-content: space-between;
    }
    
    justify-content: space-between;
  • justify-content: space-around; 周围分布-视作 margin 效果的话,相当于每个 itemmargin-leftmargin-right 值相同
    .box {
    	display: flex;
        border: 1px solid #333;
        justify-content: space-around;
    }
    /* margin-right = margin-left = (box 的宽度 - item 的宽度 * 8) / (8 * 2) */
    
    justify-content: space-around;
  • justify-content: space-evenly; 均匀分布-视作 margin 的话,均匀分配剩余空间,每个 itemmargin-left 值相等,最后剩下的空隙,值与 itemmargin-left 相等
    .box {
    	display: flex;
        border: 1px solid #333;
        justify-content: space-evenly;
    }
    /* margin-right = 0 */
    /* margin-left = (box 的宽度 - item 的宽度 * 8) / (8 + 1) */
    
    justify-content: space-evenly;

align-items

  • 设置 box 内弹性 item 的针对交叉轴的对齐分布方式
  • 取值:flex-start / flex-end / center
  • align-items: flex-start; 起点对齐(默认值)
    .box {
    	display: flex;
        padding: 40px;
        border: 1px solid #333;
        align-items: flex-start;
    }
    
    align-items: flex-start;
  • align-items: flex-end; 结束点对齐
    .box {
    	display: flex;
        padding: 40px;
        border: 1px solid #333;
        align-items: flex-end;
    }
    
    align-items: flex-end;
  • align-items: center; 居中对齐
    .box {
    	display: flex;
        padding: 40px;
        border: 1px solid #333;
        align-items: center;
    }
    
    align-items: center;

align-content

  • 设置多轴线 box 内弹性 item 的对齐分布方式

  • 取值:flex-start / flex-end / center / space-between / space-around / space-evenly

  • 为方便观察不同属性的对比,移除了 boxpadding 属性

  • 为外层父盒子添加 flex 属性,形成多轴线的盒子

  • align-content: flex-start; 起点对齐

    .mainBox {
    	display: flex;
    	.box {
    		display: flex;
    	    border: 1px solid #333;
    		flex-wrap: wrap;
    	    align-content: flex-start;
    	}
    }
    

    align-content: flex-start;

  • align-content: flex-end; 结束点对齐

    .mainBox {
    	display: flex;
    	.box {
    		display: flex;
    	    border: 1px solid #333;
    		flex-wrap: wrap;
    	    align-content: flex-end;
    	}
    }
    

    align-content: flex-end;

  • align-content: center; 居中对齐

    .mainBox {
    	display: flex;
    	.box {
    		display: flex;
    	    border: 1px solid #333;
    		flex-wrap: wrap;
    	    align-content: center;
    	}
    }
    

    align-content: center;

  • align-content: space-between; 两端对齐

    .mainBox {
    	display: flex;
    	.box {
    		display: flex;
    	    border: 1px solid #333;
    		flex-wrap: wrap;
    	    align-content: space-between;
    	}
    }
    

    align-content: space-between;

  • align-content: space-around; 周围分布

    .mainBox {
    	display: flex;
    	.box {
    		display: flex;
    	    border: 1px solid #333;
    		flex-wrap: wrap;
    	    align-content: space-around;
    	}
    }
    

    align-content: space-around;

  • align-content: space-evenly; 均匀分布

    .mainBox {
    	display: flex;
    	.box {
    		display: flex;
    	    border: 1px solid #333;
    		flex-wrap: wrap;
    	    align-content: space-evenly;
    	}
    }
    

    align-content: space-evenly;

用于弹性项目(item)的属性

order

  • 设置 box 内弹性 item 的排序
  • 取值:Num,取值越小越靠前,默认为 0
    .item {
        color: #fff;
        &:nth-child(1) {
            order: 4;
        }
        &:nth-child(2) {
            order: 3;
        }
        &:nth-child(3) {
            order: 0;
        }
        &:nth-child(4) { }
        &:nth-child(5) {
            order: 2;
        }
    }
    
    order

flex-grow

  • 设置 box 内弹性 item 的扩展系数
  • 取值:Num,取值越小扩展比例越小,默认为 0
    .item {
        color: #fff;
        &:nth-child(1) {
            flex-grow: 1;
        }
        &:nth-child(2) {
            flex-grow: 3;
        }
        &:nth-child(3) {
            flex-grow: 1;
        }
        &:nth-child(4) { }
        &:nth-child(5) { }
    }
    
    flex-grow

flex-basis

  • 设置 box 内弹性 item 的初始宽度,会覆盖原有宽度属性
  • 取值:像素值
    .item {
        color: #fff;
        &:nth-child(1) {
            flex-basis: 50px;
        }
        &:nth-child(2) {
            flex-basis: 100px;
        }
        &:nth-child(3) {
            flex-basis: 150px;
        }
        &:nth-child(4) {
        	flex-basis: 200px;
        }
        &:nth-child(5) {
            flex-basis: 250px;
        }
    }
    
    flex-basis

flex-shrink

  • 设置 box 内弹性 item 的收缩系数
  • 取值:Num,取值越小压缩比例越小,默认为 1 ,取值为 0 时,不会被压缩
    .item {
        color: #fff;
        &:nth-child(1) {
            flex-shrink: 1;
        }
        &:nth-child(2) {
            flex-shrink: 2;
        }
        &:nth-child(3) {
            flex-shrink: 3;
        }
        &:nth-child(4) {
        	flex-shrink: 0;
        }
        &:nth-child(5) {
            flex-shrink: 0;
        }
    }
    
    flex-shrink

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/333153.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软中断在bottom-half中调用

https://www.bilibili.com/read/cv20785285/简介软中断可以在两个位置得到机会执行&#xff1a;硬中断返回前 irq_exit中断下半部 Bottom-half Enable后情景分析情景1spin_unlock_bh__raw_spin_unlock_bh__local_bh_enable_ip 打开Bottom-half&#xff0c;并让softirq有机会…

【NGINX入门指北】 进阶篇

nginx 进阶篇 文章目录nginx 进阶篇一、Nginx Proxy 服务器1、代理原理2、proxy代理3、proxy缓存一、Nginx Proxy 服务器 1、代理原理 正向代理 内网客户机通过代理访问互联网&#xff0c;通常要设置代理服务器地址和端口。 反向代理 外网用户通过代理访问内网服务器&…

xpath注入[NPUCTF2020]ezlogin

[NPUCTF2020]ezlogin 打开界面 如果发现自己输入的信息由这样构成&#xff0c;可以往xpath注入上靠一下。 不管输入什么&#xff0c;很容易发现登陆就超时了&#xff0c;说明这里token是不断刷新的。 这样构造也是一样的目的都是为了闭合后面的&#xff0c;为啥有两个or呢 us…

Redis中有常见数据类型

Redis的数据类型 string数据类型 string是redis最基本的类型&#xff0c;而且string类型是二进制安全的。意思是redis的string可以包含任何 数据&#xff0c;比如jpg图片或者序列化的对象 String类型是最基本的数据类型&#xff0c;一个redis中字符串value最多可以是512M r…

Allegro如何使用Snake命令走蛇形线操作指导

Allegro如何使用Snake命令走蛇形线操作指导 在做PCB设计的时候,遇到不规则BGA的时候,蛇形走线是惯用的走线方式,类似下图 Allegro支持蛇形走线,具体操作如下 首先把过孔打好,尽量上下左右间距一致,不容易出现偏差,如下图在Command命令栏下方输入snake,然后回车

常见字符串函数的使用,你确定不进来看看吗?

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前是C语言学习者 ✈️专栏&#xff1a;C语言航路 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你有帮助的话 欢迎 评论&#x1f4ac; 点赞&a…

2023年最强大的12款数据可视化工具,值得收藏

做数据分析也有年头了&#xff0c;好的坏的工具都用过&#xff0c;推荐几个觉得很好用的&#xff0c;避坑必看&#xff01; PS&#xff1a;一般比较成熟的公司里&#xff0c;数据分析工具不只是满足业务分析和报表制作&#xff0c;像我现在给我们公司选型BI工具&#xff0c;是做…

差分模拟信号转单端输出电路设计

需求分析&#xff1a; 1.差分输入0~16V -Vpp电压量&#xff1b; 2.输入频率0~1.2KHz&#xff1b; 3.单端对应输出0~3V的模拟量&#xff1b; 4.输出频率对应0~1.2KHz&#xff1b; 5.供电范围3~5V。 针对以上需求&#xff0c;设计如下图所示电路。 1.电路功能&#xff1a; …

Spring为什么这么火 之 Bean的6种作用域和Bean的生命周期

1、Bean的作用域 1.1、什么是作用域&#xff1f; 限定程序中变量的可用范围叫做作用域&#xff0c;或者说在源代码中定义变量的某个区域就叫做作用域 1.2、Bean的6种作用域 singleton&#xff1a;单例作用域prototype&#xff1a;原型作用域【多例作用域】request&#xff1…

Flowable进阶学习(九)数据对象DataObject、租户Tenant、接收任务ReceiveTask

文章目录一、数据对象DataObject二、租户 Tenant三、接收任务 ReceiveTask案例一、数据对象DataObject DataObject可以⽤来定义⼀些流程的全局属性。 绘制流程图&#xff0c;并配置数据对象&#xff08;不需要选择任意节点&#xff09; 2. 编码与测试 /*** 部署流程*/ Test…

C++类和对象(中)

✨个人主页&#xff1a; Yohifo &#x1f389;所属专栏&#xff1a; C修行之路 &#x1f38a;每篇一句&#xff1a; 图片来源 I do not believe in taking the right decision. I take a decision and make it right. 我不相信什么正确的决定。我都是先做决定&#xff0c;然后把…

java二叉排序树

1.先看一个需求 给你一个数列 (7, 3, 10, 12, 5, 1, 9)&#xff0c;要求能够高效的完成对数据的查询和添加 2.解决方案分析 使用数组 数组未排序&#xff0c; 优点&#xff1a;直接在数组尾添加&#xff0c;速度快。 缺点&#xff1a;查找速度慢. [示意图] 数组排序&#xf…

车道线检测-PolyLaneNet 论文学习笔记

论文&#xff1a;《PolyLaneNet: Lane Estimation via Deep Polynomial Regression》代码&#xff1a;https://github.com/lucastabelini/PolyLaneNet地址&#xff1a;https://arxiv.org/pdf/2004.10924.pdf参考&#xff1a;https://blog.csdn.net/sinat_17456165/article/deta…

Java中的clone方法

注解定义&#xff1a; 注解是一种注释机制&#xff0c;它可以注释包、类、方法、变量、参数&#xff0c;在编译器生成类文件时&#xff0c;标注可以被嵌入到字节码中。注解的分类&#xff1a;内置注解Override :重写方法&#xff0c;引用时没有该方法时会编译错误public class …

使用 ThreeJS 实现第一个三维场景(详)

文章目录参考描述index.html三维场景的基本实现导入 ThreeJS准备工作场景摄像机视锥体正交摄像机透视摄像机渲染器后续处理将摄像机添加至场景中移动摄像机设置画布尺寸将渲染器创建的画布添加到 HTML 元素中渲染物体结构材质合成将物体添加至场景中代码总汇执行效果动画reques…

Python基础及函数解读(深度学习)

一、语句1.加注释单行注释&#xff1a;&#xff08;1&#xff09;在代码上面加注释&#xff1a; # 后面跟一个空格&#xff08;2&#xff09;在代码后面加注释&#xff1a;和代码相距两个空格&#xff0c; # 后面再跟一个空格多行注释&#xff1a;按住shift 点击三次"&am…

蓝桥杯刷题023——机器人塔(DFS)

2016国赛 题目描述 X 星球的机器人表演拉拉队有两种服装&#xff0c;A 和 B。 他们这次表演的是搭机器人塔。 类似&#xff1a; A B B A B A A A B B B B B A B A B A B B A 队内的组塔规则是&#xff1a; A 只能站在 AA 或 BB 的肩上。 B 只能站在 AB 或 BA 的肩上。 你的任务…

擎创动态 | 定了!建设银行首批生态合作伙伴

1月31日&#xff0c;建设银行以“云行金融之道&#xff0c;建可信未来”为主题在北京举办“建行云”发布会&#xff0c;首批推出三大类10个云服务套餐&#xff0c;为行业提供一站式解决方案。发布会上&#xff0c;建设银行推出“云霄”生态合作计划并公布首批39家“建行云”生态…

基于vue-admin-element开发后台管理系统【技术点整理】

一、Vue点击跳转外部链接 点击重新打开一个页面窗口&#xff0c;不覆盖当前的页面 window.open(https://www.baidu.com,"_blank")"_blank" 新打开一个窗口"_self" 覆盖当前的窗口例如&#xff1a;导入用户模板下载 templateDownload() {wi…

化繁为简|中信建投基于StarRocks构建统一查询服务平台

近年来&#xff0c;在证券服务逐渐互联网化&#xff0c;以及券商牌照红利逐渐消退的行业背景下&#xff0c;中信建投不断加大对数字化的投入&#xff0c;尤其重视数据基础设施的建设&#xff0c;期望在客户服务、经营管理等多方面由经验依赖向数据驱动转变&#xff0c;从而提高…