css display:grid布局,实现任意行、列合并后展示,自适应大小屏幕

现有6X7列的一个布局,如下图所示图1
想要用户能组成任意矩形盒子,并展示内容,具体效果如下(仅为一个示例,其实可以任意组合矩形):
在这里插入图片描述
html代码:

<div class="grid-container">
	<div class="grid-item"  
		v-for="(v,k) in boxList" 
		:key="k"
		:style="getStyle(v)"
	>{{v.num}}</div>
</div>

首先循环出42个格子,js代码

getData() {
	// 指定每行最大的元素数量
	const maxPerRow = 6;
	// 循环生成 42 个元素
	for (let i = 1; i <= 42; i++) {
		// 计算当前元素所在的行和列
		let row = Math.ceil(i / maxPerRow);
		let col = i % maxPerRow === 0 ? maxPerRow : i % maxPerRow;
		let data = {
			num: i,
			x: [row, col],
			merge: [0, 0],//[合并行数,合并列数]
		};
		// 添加对象到数组
		this.boxList.push(data);
	}
},

此时会生成如图1所示的42个格子,让用户去勾选格子合并,合并逻辑后端完成。
样式合并方法如下:

getStyle(v) {
	const styles = {};
		if (v.merge[0] > 0) {//合并列
			styles['grid-row'] = `${v.x[0]} / span ${v.merge[0]}`;
		}
		if (v.merge[1] > 0) {//合并行
			styles['grid-column'] = `${v.x[1]} / span ${v.merge[1]}`;
		}
		return styles;
	},

模拟后端数据返回方法如下:

getData() {
	// 指定每行最大的元素数量
	const maxPerRow = 6;

	// 循环生成 42 个元素
	for (let i = 1; i <= 42; i++) {
		// 计算当前元素所在的行和列
		let row = Math.ceil(i / maxPerRow);
		let col = i % maxPerRow === 0 ? maxPerRow : i % maxPerRow;
		let data = {
			num: i,
			x: [row, col],
			merge: [0, 0],//[合并行数,合并列数]
		};
		if(i == 3) {
			data.merge = [3, 2];
		}
		if(i == 5) {
			data.merge = [3, 2];
		}
		if([19,21,31,33,35].indexOf(i) > -1) {
			data.merge = [2, 2];
		}
		if([23,24].indexOf(i) > -1) {
			data.merge = [2, 0];
		}
		// 添加对象到数组
		if([4,6,9,10,11,12,15,16,17,18,20,22,25,26,27,28,29,30,32,34,36,37,38,39,40,41,42].indexOf(i) == -1) {
			this.boxList.push(data);
		}
	}
},

生成效果为:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序毕业设计-驾校管理系统项目开发实战(附源码+论文)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;微信小程序毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计…

Spring Security实现用户认证四:使用JWT与Redis实现无状态认证

Spring Security实现用户认证四&#xff1a;使用JWT与Redis实现无状态认证 1 什么是无状态认证&#xff1f;2 什么是JWT&#xff1f;2.1 需要注意的事项2.2 JWT构成 3 Spring Security JWT实现无状态认证3.1 创建一个Spring Boot项目3.1.1 依赖3.1.2 Main3.1.3 application.ym…

CMS与AI的融合:构建万能表单小程序系统

引言&#xff1a; 随着人工智能技术的飞速发展&#xff0c;MyCMS作为一款功能强大的内容管理系统&#xff0c;通过集成AI技术&#xff0c;进一步拓展了其应用范围和智能化水平。本文将探讨如何利用MyCMS结合AI技术&#xff0c;构建一个能够将用户提交的万能表单数据转化为智能提…

白话解读网络爬虫

网络爬虫&#xff08;Web Crawler&#xff09;&#xff0c;也称为网络蜘蛛、网络机器人或网络蠕虫&#xff0c;是一种自动化程序或脚本&#xff0c;被用来浏览互联网并收集信息。网络爬虫的主要功能是在互联网上自动地浏览网页、抓取内容并将其存储在本地或远程服务器上供后续处…

SpringBoot+MyBatis批量插入数据的三种方式

文章目录 1. 背景介绍2. 方案介绍2.1 第一种方案&#xff0c;用 for语句循环插入&#xff08;不推荐&#xff09;2.2 第二种方案&#xff0c;利用mybatis的foreach来实现循环插入&#xff08;不推荐&#xff09;2.3 第三种方案&#xff0c;使用sqlSessionFactory实现批量插入&a…

【文献阅读】一种多波束阵列重构导航抗干扰算法

引言 针对导航信号在近地表的信号十分微弱、抗干扰能力差的问题&#xff0c;文章提出了自适应波束形成技术。 自适应波束形成技术可以分为调零抗干扰算法和多波束抗干扰算法。 调零抗干扰算法主要应用功率倒置技术&#xff0c;充分利用导航信号功率低于环境噪声功率的特点&…

Generative AI原理本质、技术内核及工程实践之基于Vertex AI的大模型 (二)Generative AI on Vertex AI 概览

LlaMA 3 系列博客 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;一&#xff09; 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;二&#xff09; 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;三&#xff09; 基于 LlaMA…

如何挑选靠谱的软件开发公司?

在数字化的大潮中&#xff0c;企业商家都明白一个道理&#xff1a;没有一艘强大的软件开发公司“战舰”&#xff0c;想在商海中乘风破浪可不容易。但问题是&#xff0c;市场上那么多软件开发公司&#xff0c;如何挑选出最靠谱的那一家呢&#xff1f;别急&#xff0c;这篇文章就…

进程和内存管理

内存的使用和剩余情况 当前cpu的负载情况 找进程的id 结束某个进程 检查内存&#xff1a; 方法一&#xff1a;/proc/meminfo注意&#xff1a;这是个伪文件&#xff0c;这个文件记录了内存的相关信息&#xff0c;不可以用vi打开&#xff0c;应该用cat查看方法二&#xff1a;fre…

数字员工将重塑工作与生产的未来格局?

数字员工&#xff0c;由AI、机器学习和自动化技术驱动&#xff0c;正逐渐取代或协助人类完成从基础到高端的任务&#xff0c;极大提升工作效率&#xff0c;并改变工作认知。它们不仅影响各行业&#xff0c;还重塑人与机器、社会、自然的关系。与二十世纪末的国企下岗变革相比&a…

SaaS企业营销:如何通过联盟计划实现销售增长?

联盟营销计划在国外saas行业非常盛行&#xff0c;国内如何借鉴国外的成功案例运用联盟计划实现销售增长呢&#xff1f;林叔今天以最近新发现的leadpages为例分享下经验。 Leadpages是一款用户友好的落地页制作工具&#xff0c;提供多种预设计模板、A/B测试和分析功能&#xff0…

实例详解C/C++中static与extern关键字的使用

目录 1、概述 2、编译C++代码时遇到的变量及函数重复定义的问题 3、用 extern 声明外部变量 4、extern与全局函数 5、为何在变量和函数前添加一个static关键字编译就没问题了呢? 6、静态局部变量 7、函数的声明与定义都放置到一个头文件中,不使用static,通过宏控制去…

安灯(andon)系统如何帮助工厂流水线实现精益生产

在当今竞争激烈的制造业领域&#xff0c;实现精益生产已成为众多工厂追求的目标。而安灯&#xff08;Andon&#xff09;系统在这一过程中发挥着至关重要的作用。 安灯&#xff08;Andon&#xff09;系统通过及时反馈和沟通机制&#xff0c;让生产过程中的问题能够迅速被察觉和解…

Si24R05—高度集成的低功耗 2.4G+125K SoC 芯片

Si24R05是一款高度集成的低功耗SoC芯片&#xff0c;具有低功耗、Low Pin Count、宽电压工作范围&#xff0c;集成了13/14/15/16位精度的ADC、LVD、UART、SPI、I2C、TIMER、WUP、IWDG、RTC、无线收发器、3D低频唤醒接收器等丰富的外设。内核采用RISC-V RV32IMAC&#xff08;2.6 …

VOP | Point Cloud

目录 Point Cloud Open —— 打开点云文件并搜索源位置周围的点 Point Cloud Find —— 返回最近点的点号列表 Point Cloud Find Radius —— 返回最近点的点号列表并考虑被搜索点的半径 Point Cloud Filter —— 过滤查询到的点以生成加权值 Point Cloud Farthest —— 查…

第二证券股市资讯:半导体,突发!

半导体又现突发&#xff01; 商场忽然传出&#xff0c;拜登政府正在考虑约束我国获取应用在人工智能&#xff08;AI) 芯片上的全栅级晶体管技能&#xff08;Gate-all-around, GAA) &#xff0c;但不过现在还不清楚美国官员何时会做出最终决议。从趋势来看&#xff0c;这意味着…

【Ardiuno】实验ESP32单片机自动配置Wifi功能(图文)

这里小飞鱼按照ESP32的示例代码&#xff0c;实验一下wifi的自动配置功能。所谓的自动配置&#xff0c;就是不用提前将wifi的名称和密码写到程序里&#xff0c;这样可以保证程序在烧录上传后&#xff0c;可以通过手机端的软件来进行配置&#xff0c;可以避免反复修改代码&#x…

【产品经理】ERP对接电商平台

电商ERP对接上游平台&#xff0c;会需要经历几个步骤环节&#xff0c;包括店铺设置等。 电商ERP对接上游电商平台&#xff0c;其主要设置为店铺设置、商品同步、库存同步&#xff0c;本次讲解下店铺设置应该如何进行设置&#xff0c;以及在设置过程中的可能出现的踩坑事项。 …

JAVA面试题:Redis分布式锁

Redis分布式锁 分布式锁使用的场景 集群情况下的定时任务,抢单,幂等性等场景 抢券场景 查询库存 -> 扣减库存 多个并发线程同时查询库存,出现超卖问题 添加互斥锁 所有线程执行操作之前必须尝试获取锁 保证一次只有一个线程能走查询库存->扣减库存的流程 Redis分…

物业管理的隐形杀手:纸质点检表,你还在用吗?

在日常的生活中&#xff0c;我们经常会看到小区物业保洁、客服人员在工作岗位忙忙碌碌&#xff0c;但忽略了默默为我们提供舒适环境的“隐形守护者”——物业设施设备。然而&#xff0c;一旦这些设备出现故障&#xff0c;我们的日常生活就会陷入混乱。那么&#xff0c;如何确保…