前端开发攻略---合并表格单元格,表格内嵌套表格实现手风琴效果。

1、演示

2、思路

1、用传统的 <table></table> 表格标签来实现比较麻烦。因此通过模拟  表格标签 的写法用<div></div>来实现

2、表头和表格列数是相同的,因此可以确定代码结构

<div class="table"><div class="header"><div class="th"></div><div class="th"></div><div class="th"></div><div class="th"></div><div class="th"></div></div><div class="body"><div class="tr"><div class="td"></div><div class="td"></div><div class="td"></div><div class="td"></div><div class="td"></div></div></div></div>

3、上述代码表示为一个一行五列的表格

4、通过flex进行布局

5、通过数组的长度来平分嵌套表格每一列的宽度/高度

3、全部代码

<template><div class="table"><div class="header"><div class="th">Id</div><div class="th">名字</div><div class="th">年龄</div><div class="th">朋友</div><div class="th">性别</div></div><div class="body"><div class="tr" v-for="(item, index) in data"><div class="td">{{ item.id }}</div><div class="td">{{ item.name }}</div><div class="td">{{ item.age }}</div><div class="td" style="flex-direction: column"><p @click="item.hide = !item.hide">展开详情</p><divclass="content":style="{ height: item.hide ? '0px' : `${item.detail.length * 36}px` }":class="item.hide ? '' : 'haveTopBorder'":key="index"><div class="content-row" v-for="item1 in item.detail"><div class="content-td" v-for="item2 in item1" :style="{ '--l': item1.length }">{{ item2 }}</div></div></div></div><div class="td">是</div></div></div></div>
</template><script setup>
import { ref, reactive } from 'vue'const data = ref([{id: 1,name: '刘备',age: '18',detail: [['1111', '1111', '', '1111', '1111', '1111', '1111', '1111', '1111', '1111', '1111'],['1111', '1111', '', '1111', '1111', '1111', '1111', '1111', '1111', '1111', '1111'],['1111', '1111', '', '1111', '1111', '1111', '1111', '1111', '1111', '1111', '1111'],['1111', '1111', '', '1111', '1111', '1111', '1111', '1111', '1111', '1111', '1111'],],status: '男',hide: false,},{id: 2,name: '张飞',age: '50',detail: [['1111', '1111', '1111', '1111', '1111', '1111', '1111', '1111', '1111', '', '1111'],['1111', '1111', '1111', '1111', '1111', '1111', '1111', '1111', '1111', '1111', '1111'],],status: '男',hide: false,},{id: 3,name: '关羽',age: '29',detail: [['', '1111', '1111', '1111', '1111', '1111', '', '1111', '1111', '', '1111'],['1111', '1111', '', '1111', '1111', '1111', '1111', '1111', '1111', '1111', ''],['1111', '', '1111', '1111', '', '1111', '1111', '1111', '1111', '1111', '1111'],['1111', '', '1111', '1111', '', '1111', '1111', '1111', '1111', '1111', '1111'],['1111', '', '1111', '1111', '', '1111', '1111', '1111', '1111', '1111', '1111'],['1111', '', '1111', '1111', '', '1111', '1111', '1111', '1111', '1111', '1111'],['1111', '', '1111', '1111', '', '1111', '1111', '1111', '1111', '1111', '1111'],['1111', '', '1111', '1111', '', '1111', '1111', '1111', '1111', '1111', '1111'],],status: '男',hide: false,},
])
</script><style scoped lang="scss">
* {box-sizing: border-box;margin: 0;padding: 0;
}
.table {width: 1000px;border: 1px solid #eee;font-size: 14px;.header {display: flex;justify-content: space-between;align-items: stretch;background-color: #b6bece;color: #3c3c3c;padding: 8px 0;.th {padding-left: 8px;}}.body {width: 100%;.tr {display: flex;width: 100%;justify-content: space-between;align-items: stretch;border-bottom: 1px solid #eee;.td {border-right: 1px solid #eee;padding: 8px 4px;display: flex;justify-content: flex-start;align-items: center;}.td:last-child {border-right: 0;}}.tr:last-child {border-bottom: 0;}p {width: 100%;display: flex;align-items: center;text-align: left;padding: 8px 0;cursor: pointer;user-select: none;}}.th,.td {text-align: left;}.th:nth-child(1),.td:nth-child(1) {width: 70px;}.th:nth-child(2),.td:nth-child(2) {width: 100px;}.th:nth-child(3),.td:nth-child(3) {width: 130px;}.th:nth-child(4),.td:nth-child(4) {flex: 1;padding: 0 !important;}.th:nth-child(5),.td:nth-child(5) {width: 70px;}.content {width: 100%;overflow: hidden;transition: height 0.2s;.content-row {display: flex;width: 100%;border-bottom: 1px solid #eee;.content-td {padding: 8px;width: calc(100% / var(--l));border-right: 1px solid #eee;}.content-td:last-child {border-right: 0;}}.content-row:last-child {border-bottom: 0;}.content-row:nth-child(even) {background-color: rgb(116, 182, 218);}}.haveTopBorder {border-top: 1px solid #eee;}
}
</style>

4、温馨提示

您可以找个干净的页面直接整个复制,根据您的需求更改即可

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

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

相关文章

PotPlayer 图像截取

PotPlayer 图像截取 1. PotPlayer2. PotPlayer 下载2.1. PotPlayer 240305 3. 图像截取References 1. PotPlayer http://www.potplayercn.com/ PotPlayer 是 KMPlayer 原作者姜勇囍进入新公司 Daum 之后推出的&#xff0c;继承了 KMPlayer 所有的优点&#xff0c;拥有异常强大…

Rust常见陷阱 | 算术溢出导致的 panic

Rust作为一种内存安全性语言,对于算术运算中的溢出处理特别严格。由于Rust默认会在debug模式下进行算术操作的溢出检查,任何溢出行为都会导致panic,这样能够帮助开发者在调试阶段发现潜在的溢出错误。尽管在release模式下,溢出会导致值的截断,并不会引起panic,但忽视这一…

Flask项目在Pycharm中设置局域网访问

打开PyCharm导入本应用。点击Run标签中的Edit Configurations 其中Target type选择Script path&#xff0c;Target填入本项目中app.py的路径&#xff0c;Additional optional填入--host0.0.0.0(不要有空格)。 再重新运行项目&#xff0c;会观察到除了原本的http://127.0.0.1:50…

【EI会议征稿通知】2024年图像处理、机器学习与模式识别国际学术会议(IPMLP 2024)

2024年图像处理、机器学习与模式识别国际学术会议&#xff08;IPMLP 2024) 2024 International Conference on Image Processing, Machine Learning and Pattern Recognition 重要信息 大会官网&#xff1a;www.ipmlp.net&#xff08;点击参会/投稿/了解会议详情&#xff09;…

用虚拟机搭建sqlmap靶机环境

要使用Virtual Machine (VM)搭建一个SQLMap靶机&#xff0c;您可以按照以下步骤进行&#xff1a; 第一步&#xff1a;准备虚拟机 选择虚拟化软件&#xff1a;您可以使用如VirtualBox、VMware Workstation等虚拟化软件来创建虚拟机。 创建虚拟机&#xff1a;在虚拟化软件中创建…

【赛题】2024年“华中杯”数模竞赛赛题发布

2024年"华中杯"数学建模网络挑战赛——正式开赛&#xff01;&#xff01;&#xff01; 赛题已发布&#xff0c;后续无偿分享各题的解题思路、参考文献&#xff0c;帮助大家最快时间&#xff0c;选择最适合是自己的赛题。祝大家都能取得一个好成绩&#xff0c;加油&a…

vue2指令

vue2指令 v-model 的工作原理&#xff0c;它如何在表单输入和应用状态之间创建双向绑定 v-model 是 Vue 中一个特殊的指令&#xff0c;用于在表单 <input>、<textarea> 及 <select> 元素上创建双向数据绑定。它根据控件类型自动选取正确的方法来更新元素。…

uiautomation、pytest、schedule实现桌面程序自动化(初级)02

一&#xff1a;安装uiAutomation 前置条件:安装python、pycharm 命令行安装 Pip install uiautomation2.0.17 #指定版本 二&#xff1a;安装辅助工具&#xff1a;inspect.exe和、Accessibility Insights For Windows定位元素工具 辅助工具介绍 步骤中提到…

Hive进阶(4)----MapReduce的计算过程(赋图助君理解)

MapReduce的计算过程 MapReduce是一种编程模型和处理大规模数据集的方法。它通常用于分布式计算环境中&#xff0c;能够将数据处理任务分解成独立的部分&#xff0c;分配给多台计算机进行并行处理。这个模型由Google提出&#xff0c;并在开源领域中得到了广泛的应用和实现。Map…

无法连接到MongoDB Atlas 的Cloud Database

打开Mongodb网页: 选择允许任何地址连接 连接成功

Docker容器嵌入式开发:在Ubuntu上配置RStudio与R语言、可视化操作

目录 一、dirmngr工具二、R环境安装与配置三、验证是否安装成功四、安装Rstudio五、可视化操作参考 以上是在Ubuntu 18.04上安装最新版本的R语言环境的步骤摘要。首先&#xff0c;通过添加CRAN镜像源并安装GPG密钥来配置软件源。然后&#xff0c;更新软件包列表并通过apt安装R语…

Ubuntu22.04.4 - vim - 笔记

一、编辑模式 1、进入 进入编辑模式: i 2、退出 退出编辑模式: Esc 二、命令行模式 1、进入 进入命令行&#xff0c;在退出编辑模式的情况下: : :wq 保存并退出、:q 不保存退出、 :q! 不保存强制退出 2、退出 退出编辑模式: Esc

SQL --索引

索引 INDEX 伪列 伪装起来的列&#xff0c;不容易被看见&#xff0c;要特意查询才能看见 ROWNUM&#xff1a; 是对查询结果自动生成的一组连续的自然数序号。 SELECT emp.*,ROWNUM FROM emp例题&#xff1a;查询emp表中&#xff0c;前三个员工 SELECT * FROM * from emp w…

【创建型模式】建造者模式

一、建造者模式概述 建造者模式定义&#xff1a;将一个复杂对象的构建与它的表示分离&#xff0c;使得同样的构建过程可以创建不同得表示。(对象创建型模式)。 建造者模式分析&#xff1a; 1.将客户端与包含多个部件得复杂对象得创建过程分离&#xff0c;客户端无需知道复杂对象…

微软面试高频算法题解析与代码实现(C++)

作为全球顶尖科技公司&#xff0c;微软对人才的招聘要求十分严格&#xff0c;尤其是在算法工程师的选拔上。算法面试是微软招聘流程中不可或缺的一环&#xff0c;考察候选人对算法和数据结构的理解和应用能力。本文将列举微软面试中出现频率较高的 10 道算法题&#xff0c;并使…

【unity】【C#】游戏音乐播放和发布

今天我们来认识一下有关 unity 音乐的一些知识 我们先创建 AudioClips 文件夹&#xff0c;这个文件夹通常就是 unity 中存放音乐的文件夹&#xff0c;然后拖进音乐文件进去 这里为大家提供了两个音乐&#xff0c;有需要可以自取 百度网盘&#xff1a;https://pan.baidu.com/s…

RIP最短路实验(华为)

思科设备参考&#xff1a;RIP最短路实验&#xff08;思科&#xff09; 一&#xff0c;技术简介 RIP&#xff08;Routing Information Protocol&#xff0c;路由信息协议&#xff09;是一种基于距离矢量的内部网关协议&#xff0c;工作原理是每个路由器周期性地向邻居路由器发…

React Ant Design 简单实现如何选中图片

效果&#xff1a; 代码&#xff1a; 定义的初始值和方法 const [selected, setSelected] useState(0); // 表示当前选中的图片索引const handleClick (index) > {if (selected index) {setSelected(null); // 如果点击的是已选中的图片&#xff0c;则取消选中状态} else…

tcp inflight 守恒算法(tcp_ccr)

最初的算法&#xff1a; 在 winmax 中追踪 alpha rounds 的 bw / rtt&#xff0c;将其 bw 记为 b&#xff1b;在 winmin 中追踪 k*alpha rounds 的 rtt&#xff0c;记为 minrtt&#xff1b;保持 inflight b * minrtt beta。 后来我给 beta 增加了一个 rtt 缩放系数&#xf…

JVM虚拟机(十)Java内存泄漏的排查思路

目录 一、可能产生内存泄露的地方二、复现堆内存泄漏三、如何排查堆内存问题&#xff1f;3.1 获取对内存快照 dump3.2 使用 Visual VM 去分析 dump 文件3.3 定位内存溢出问题 一、可能产生内存泄露的地方 在进行排查 Java 的内存泄漏问题之前&#xff0c;首先我们要知道哪里可…