news 2026/6/23 12:11:49

前端table表格,零基础入门到精通,收藏这篇就够了

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
前端table表格,零基础入门到精通,收藏这篇就够了

1.写一个简单的table表格框架

<table> <thead class="my-table"> <tr> <th>姓名</th> <th>年龄</th> <th>性别</th> </tr> </thead> <tbody> <tr v-for="(item, index) in tableData" :key="index"> <td>{{ item.name }}</td> <td>{{ item.age }}</td> <td>{{ item.address }}</td> </tr> </tbody> </table>

table里的数据在data里返回,以下是实例数据

tableData: [ { name: "张三", age: 30, address: "北京市朝阳区" }, { name: "李四", age: 28, address: "上海市浦东新区" }, { name: "王五", age: 32, address: "广州市天河区" }, { name: "赵六", age: 25, address: "深圳市福田区" }, { name: "孙七", age: 27, address: "成都市武侯区" }, ],

这样我们就拥有了一个没有样式的基础表格

2.为了使表格更好看,我实现了如下几步:

  1. 固定表头,滚动时保留表格上面的标题

将th的 position设置为sticky,固定首行,也就是top=0,为其设置为一个区分的颜色

th { background-color: #3c7ca7; font-weight: bold; position: sticky; top: 0; background-color: rgb(110, 138, 163); }
  1. 将表格间的分割线去除
<table cellspacing="0" > <--...table内容--> </table>
  1. 修改表格背景颜色,字体等样式
    为了好看点还设置了隔行的颜色区分也就是 tr:nth-child(even)
th, td { padding: 20px; text-align: center; font-family: '微软雅黑',"times","courier","arial"; font-weight:"medium"; //border: 1px solid #ccc; font-size: 20px; color: #ffffff; } th { background-color: #3c7ca7; font-weight: bold; position: sticky; top: 0; background-color: rgb(110, 138, 163); } tr:nth-child(even) { background-color: #3c7ca7; }
  1. 自动滚动效果
    首先为了滚动效果的顺利实现,给table类增加一个外框类table-container
    增加滑动框并隐藏
.table-container { overflow-y: scroll; -webkit-overflow-scrolling: touch; } .table-container::-webkit-scrollbar { display: none; }

然后利用timer定时器和scrollTop 属性设置滚动效果,

mounted() { this.timerId = setInterval(() => { const tableContainer = this.$refs.tableContainer; const rowHeight = tableContainer.querySelector('tbody tr').offsetHeight; tableContainer.scrollTop += rowHeight; if (tableContainer.scrollTop == lasttop) { tableContainer.scrollTop = 0; }else{ lasttop=tableContainer.scrollTop } }, 2000); this.init(); }, beforeDestroy() { // 在组件销毁前清除 setInterval clearInterval(this.timerId);

},
由于上面的滚动效果不好,看起来很卡顿,下面优化了滚动效果,加入缓动

mounted() { this.timerId = setInterval(() => { const tableContainer = this.$refs.tableContainer; const rowHeight = tableContainer.querySelector('tbody tr').offsetHeight; tableContainer.scrollTop += rowHeight/30; if (tableContainer.scrollTop == lasttop) { tableContainer.scrollTop = 0; }else{ lasttop=tableContainer.scrollTop } }, 30); this.init(); // this.tableroll(); },
  1. 最后实现效果

3.全部代码

<div class="table-container" ref="tableContainer"> <table cellspacing="0" > <thead class="my-table"> <tr> <th>姓名</th> <th>年龄</th> <th>性别</th> </tr> </thead> <tbody> <tr v-for="(item, index) in tableData" :key="index"> <td>{{ item.name }}</td> <td>{{ item.age }}</td> <td>{{ item.address }}</td> </tr> </tbody> </table> </div> export default { data() { tableData: [ { name: "张三", age: 30, address: "北京市朝阳区" }, { name: "李四", age: 28, address: "上海市浦东新区" }, { name: "王五", age: 32, address: "广州市天河区.dfasfaweorfaiadsfasd" }, { name: "赵六", age: 25, address: "深圳市福田区" }, { name: "孙七", age: 27, address: "成都市武侯区" }, ], }, .table-container::-webkit-scrollbar { display: none; } .table-container { position: absolute; left: 80%; top:70%; height: 300px; overflow-y: scroll; -webkit-overflow-scrolling: touch; background-color:rgba(18, 76, 117, 0.7); .my-table { } th, td { padding: 20px; text-align: center; font-family: '微软雅黑',"times","courier","arial"; font-weight:"medium"; //border: 1px solid #ccc; font-size: 20px; color: #ffffff; } th { background-color: #3c7ca7; font-weight: bold; position: sticky; top: 0; background-color: rgb(110, 138, 163); } tr:nth-child(even) { background-color: #3c7ca7; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 18:51:02

从入门到精通:掌握Open-AutoGLM推理优化的7个关键步骤

第一章&#xff1a;Open-AutoGLM推理优化概述Open-AutoGLM 是一个面向大规模语言模型推理的开源优化框架&#xff0c;专注于提升生成式语言模型在实际部署中的响应速度与资源利用率。该框架结合了动态批处理、内存优化、计算图融合等核心技术&#xff0c;显著降低了推理延迟并提…

作者头像 李华
网站建设 2026/6/23 14:08:57

【Open-AutoGLM macOS适配终极指南】:手把手教你完成全流程配置与优化

第一章&#xff1a;Open-AutoGLM macOS 适配设置为在 macOS 平台上顺利运行 Open-AutoGLM&#xff0c;需完成环境依赖配置、系统权限调整及框架兼容性适配。以下为关键设置步骤与推荐配置。环境准备 Open-AutoGLM 依赖 Python 3.10 与 Homebrew 管理的系统级工具。建议使用 pye…

作者头像 李华
网站建设 2026/6/22 23:37:10

【Open-AutoGLM语义解析突破】:准确率提升35%背后的核心技术揭秘

第一章&#xff1a;Open-AutoGLM语义解析准确率提升的背景与意义 在自然语言处理领域&#xff0c;语义解析作为连接人类语言与机器理解的核心桥梁&#xff0c;其准确性直接影响智能问答、代码生成和自动化推理等下游任务的表现。Open-AutoGLM作为一个开源的通用语言模型框架&am…

作者头像 李华
网站建设 2026/6/23 1:53:13

为什么顶尖团队都在用Open-AutoGLM做高效特征提取?真相曝光

第一章&#xff1a;Open-AutoGLM特征提取效率提升的行业背景随着人工智能在工业、金融、医疗等领域的深度渗透&#xff0c;大规模语言模型驱动的自动化系统对特征提取效率提出了更高要求。传统特征工程依赖人工设计与领域知识&#xff0c;耗时且难以适应动态数据环境。在此背景…

作者头像 李华
网站建设 2026/6/23 14:13:04

【AI模型预处理新纪元】:Open-AutoGLM如何实现毫秒级特征输出

第一章&#xff1a;Open-AutoGLM 特征提取效率提升在大规模语言模型驱动的自动化系统中&#xff0c;特征提取的效率直接影响整体推理速度与资源消耗。Open-AutoGLM 通过引入动态稀疏注意力机制与分层特征缓存策略&#xff0c;显著优化了文本特征的提取过程。该架构能够在不损失…

作者头像 李华