flex 布局使用 space-between 时将最后一行左对齐

1.使用占位元素

特点:适用于任意列数布局,比较简单,缺点是会产生空标签
方法:使用循环体循环一整行空元素。宽度为单个元素宽度,高度为0

<div class="flex-box"><div class="item-box" v-for="item in 4" :key="item"></div><!-- 假设一行有3列,即3个元素 --><div v-for="temp in 3" :key="temp + 't'" class="temp-box"></div>
</div>
.flex-box {display: flex;align-items: center;justify-content: space-between;flex-wrap: wrap;
}
.flex-box .item-box {width: 30%;height: 200px;margin-bottom: 20px;background: pink;
}
.flex-box .temp-box {width: 30%;height: 0;margin: 0;
}

2.给父级元素后面添加伪元素

特点:只针对三列布局
方法:通过 ::after 选择器,给父元素添加伪元素

<div class="flex-box"><div class="item-box" v-for="item in 5" :key="item"></div>
</div>
.flex-box {display: flex;align-items: center;justify-content: space-between;flex-wrap: wrap;
}
.flex-box .item-box {width: 30%;height: 200px;margin-bottom: 20px;background: pink;
}
.flex-box:after {content: '';width: 30%;
}

3.计算方式

特点:适用于每一行列数固定,且列宽度固定,需要进行计算,相比较复杂
方法:对于最后一行的元素动态设置 margin-right。判断如果最后一个元素处于当前列,会发生布局错乱,则设置元素的 margin-right 为剩余空间的大小(剩余列宽度 + 剩余间隙大小)。假设元素宽度是 $width,总间隙是 $space(盒子宽度 - 元素宽度 * 列数)
计算公式:margin-right: calc( ($space / 间隙数) * 剩余列数 + $width * 剩余列数)

三列布局

计算公式:宽度为30%,则剩余间隙:100% - 30% * 3 = 10%

<div class="flex-box-3"><div class="item-box" v-for="item in 5" :key="item"></div>
</div>
/* 计算方式(三列布局) */
.flex-box-3 {display: flex;align-items: center;justify-content: space-between;flex-wrap: wrap;
}
.flex-box-3 .item-box {width: 30%;height: 200px;margin-bottom: 20px;background: pink;
}
/* 三列布局:宽度为30%,则剩余间隙:100% - 30% * 3 = 10% */
/* 最后一行是2个元素 */
.flex-box-3 .item-box:last-child:nth-child(3n - 1) {margin-right: calc(10% / 2 * 1 + 30% * 1);
}

四列布局

计算公式:宽度为22%,则剩余间隙:100% - 22% * 4 = 12%

<div class="flex-box-4"><div class="item-box" v-for="item in 5" :key="item"></div>
</div>
/* 计算方式(四列布局) */
.flex-box-4 {display: flex;align-items: center;justify-content: space-between;flex-wrap: wrap;
}
.flex-box-4 .item-box {width: 22%;height: 200px;margin-bottom: 20px;background: pink;
}
/* 四列布局:宽度为22%,则剩余间隙:100% - 22% * 4 = 12% */
/* 最后一行是2个元素 */
.flex-box-4 .item-box:last-child:nth-child(4n - 2) {margin-right: calc(12% / 3 * 2 + 22% * 2);
}
/* 最后一行是3个元素 */
.flex-box-4 .item-box:last-child:nth-child(4n - 1) {margin-right: calc(12% / 3 * 1 + 22% * 1);
}

五列布局

计算公式:宽度为18%,则剩余间隙:100% - 18% * 5 = 10%

<div class="flex-box-5"><div class="item-box" v-for="item in 7" :key="item"></div>
</div>
/* 计算方式(五列布局) */
.flex-box-5 {display: flex;align-items: center;justify-content: space-between;flex-wrap: wrap;
}
.flex-box-5 .item-box {width: 18%;height: 200px;margin-bottom: 20px;background: pink;
}
/* 五列布局:宽度为18%,则剩余间隙:100% - 18% * 5 = 10% */
/* 最后一行是2个元素 */
.flex-box-5 .item-box:last-child:nth-child(5n - 3) {margin-right: calc(10% / 4 * 3 + 18% * 3);
}
/* 最后一行是3个元素 */
.flex-box-5 .item-box:last-child:nth-child(5n - 2) {margin-right: calc(10% / 4 * 2 + 18% * 2);
}
/* 最后一行是4个元素 */
.flex-box-5 .item-box:last-child:nth-child(5n - 1) {margin-right: calc(10% / 4 * 1 + 18% * 1);
}

依次类推,当列数为6、7、8、9… 时,同样按照上述方式计算

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

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

相关文章

HTML <ruby> 标签

实例 一个 ruby 注释&#xff1a; <ruby> 漢 <rt><rp>(</rp>ㄏㄢˋ<rp>)</rp></rt> </ruby>定义和用法 <ruby> 标签定义 ruby 注释&#xff08;中文注音或字符&#xff09;。 在东亚使用&#xff0c;显示的是东亚字…

AutoSAR系列讲解(实践篇)12.2-CanTP

目录 CanTP 一、主要作用 二、诊断传输流程 CanTP CanTP说起来其实重要也不重要,其本身是设计可以用于CAN的很多传输协议,但是目前基本上也就咱们做诊断的时候用用,不过虽然简单,我们也 讲讲 一、主要作用 CanTp是位于PduR和CanIf之间的一个模块,主要提供以下服务:…

论文阅读-Neighbor Contrastive Learning on Learnable Graph Augmentation(AAAI2023)

人为设计的图增强&#xff0c;可能会破坏原始图的拓扑结构&#xff0c;同时相邻节点被视为负节点&#xff0c;因此被推离锚点很远。然而&#xff0c;这与网络的同质性假设是矛盾的&#xff0c;即连接的节点通常属于同一类&#xff0c;并且应该彼此接近。本文提出了一种端到端的…

python绿色版运行程序,python 绿色版免安装

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;python绿色版运行程序&#xff0c;python 绿色版免安装&#xff0c;今天让我们一起来看看吧&#xff01; 软件简介 Python3.7.0 是一种被广大从业者广泛使用的通用型设计语言。该软件提供了丰富全面的模块&#xff0c;并…

MFC第二十七天 通过动态链表实现游戏角色动态增加、WM_ERASEBKGND背景刷新的原理、RegisterClass注册窗口与框架程序开发

文章目录 通过动态链表实现游戏角色动态增加CMemoryDC.hCFlashDlg.hCFlashDlg.cpp WM_ERASEBKGND背景刷新的原理RegisterClass注册窗口与框架程序开发CFrameRegister 通过动态链表实现游戏角色动态增加 CMemoryDC.h #pragma once#include "resource.h"/*内存DC类简介…

Grafana-部署

一、部署 1.1 Linux 方式 Centos 系统 yum install https://dl.grafana.com/enterprise/release/grafana-enterprise-10.0.3-1.x86_64.rpm二、配置 Grafana 具有默认和自定义配置文件。您可以通过修改自定义配置文件或使用环境变量来自定义 Grafana 实例。要查看 Grafana 实…

【设计模式|中】结构型模式

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 【设计模式|上】【创建型】 【设计模式 | 中】【结构型】 适配器模式代理模式装饰器模式桥接模式组合模式外观模式享元模式 【设计模式 | 下】【行为型…

6.s081/6.1810(Fall 2022)Lab3: page tables

文章目录 前言其他篇章参考链接0. 前置环境1. Speed up system calls (easy)1.1 简单分析1.2 映射1.3 页分配1.4 页释放1.5 测试 2. Print a page table (easy)2.1 简单分析2.2 实现2.3 测试 3. Detect which pages have been accessed (hard)3.1 简单分析3.2 实现3.2.1 获取参…

8.物联网操作系统之事件标志组

。事件标志组定义 FreeRTOS事件标志组介绍 FreeRTOS事件标志组工作原理 一。事件标志组定义 信号量信号量只能实现任务与单个事件或任务间的同步。但是某些任务可能会需要与多个事件或任务进行同步&#xff0c;此时就可以使用事件标志组来解决。事件标志组能够实现某个任务与…

Webpack5 动态导入按需加载

文章目录 一、 什么是动态导入和按需加载&#xff1f;二、 具体用法示例二、 总结 一、 什么是动态导入和按需加载&#xff1f; 传统上&#xff0c;在Webpack中&#xff0c;我们使用import语句可以在代码中静态地导入模块。这意味着所有的模块都会在构建时被打包到bundle中。然…

【PostgreSQL】系列之 一 用户创建和授权(三)

&#x1f341; 博主 "开着拖拉机回家"带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——&#x1f390;开着拖拉机回家_Linux,Java基础学习,大数据运维-CSDN博客 &#x1f390;✨&#x1f341; &#x1fa81;&#x1f341; 希望本文能够给您带来一定的…

如何在 Android 上恢复已删除的视频|快速找回丢失的记忆

想知道是否有任何成功的方法可以从 Android 手机中检索已删除的视频&#xff1f;好吧&#xff0c;本指南将向您展示分步说明&#xff0c;让您轻松从手机中找回丢失的视频文件&#xff01; 您是否不小心从 Android 智能手机中删除了珍贵的生日视频&#xff1f;难道是无处可寻吗…

前端监控概述

前端监控埋点概览 前端监控主要分为三类&#xff1a;数据监控、性能监控、异常监控 数据监控 记录上报产品在用户端的使用情况&#xff0c;以数据为导向&#xff0c;帮助团队做决策&#xff0c;数据监控有时也被称为行为监控&#xff0c;常见的包括&#xff1a; PV/UV&…

宝塔面板Mysql数据库无法启动(已解决)

1、错误排查 Mysql 无法正常启动直接使用官方提供的脚本检查出错 wget -O sql-repair.sh http://download.bt.cn/install/sql-repair.sh && sh sql-repair.shwget -O sql-repair.sh http://download.bt.cn/install/sql-repair.sh && sh sql-repair.sh 打印出…

LoadRunner

✏️作者&#xff1a;银河罐头 &#x1f4cb;系列专栏&#xff1a;JavaEE &#x1f332;“种一棵树最好的时间是十年前&#xff0c;其次是现在” 目录 LoadRunner 安装LoadRunner 三大组件之间的关系LoadRunner 脚本录制WebTours 系统 脚本加强事务插入插入集合点插入检查点参数…

增量式PID算法及其MATLAB实现

增量式PID算法是一种常用的控制算法,用于控制系统中的反馈控制。它通过对系统的误差进行递推式的计算,实现对系统输出的调节,使得系统的输出逐渐趋向于设定值。 delta u(k)=u(k)-u(k-1)=Kp*(e(k)-e(k-1))+Ki*e(k)+Kd*(e(k)-2*e(k-1)+e(k-2)) PID算法由三个部分组成:比例(…

Cat.1如何成为物联网业务加速器?

随着Cat.1芯片及模组在功耗和成本上的不断优化&#xff0c;在窄带物联网领域&#xff0c;越来越多的终端客户把Cat.1当做与NB-IoT相比较的第二选择。越来越多的表计、烟感、市政等行业终端将Cat.1模组应用于非集中化部署的上报类终端业务中&#xff0c;Cat.1这只“网红猫”仍保…

在 spark-sql / spark-shell / hive / beeline 中粘贴 sql、程序脚本时的常见错误

一个很小的问题&#xff0c;简单记录一下。有时候我们会粘贴一段已经成功运行过的SQL或程序脚本&#xff0c;但是在spark-sql / spark-shell / hive / beeline 中执行时可能会报这样的错误&#xff1a; hive> CREATE EXTERNAL TABLE IF NOT EXISTS ORDERS(> Display all…

基于vue医院分时段预约挂号系统java病历管理系统snsj0

伴随着我国社会的发展&#xff0c;人民生活质量日益提高。互联网逐步进入千家万户&#xff0c;改变传统的管理方式&#xff0c;医院病历管理系统以互联网为基础&#xff0c;利用java技术&#xff0c;和mysql数据库开发设计一套医院病历管理系统&#xff0c;提高工作效率的同时&…

点击表格行高亮

css中三元表达式 :class"[activeIndex index ? color : , item]"点击行高亮 <div click"actvied(index)" :class"[activeIndex index ? color : , item]"v-for"(item, index) in tableData" :key"index">{{ item…