el-table怎么实现表头换行,有哪些方式?
Admin 2022-06-21 群英技术资讯 748 次浏览
表格中的表头一般都是不换行的,不过有时候在某些业务场景中,需要让表头的文字换行展示一下,我们先看一下效果图
看注释就行啦。
演示的话,直接复制粘贴运行就行啦
<template> <div class="vueWrap"> <el-table style="width: 900px" :data="tableBody" border :header-cell-style="{ background: '#FAFAFA', color: '#333333', fontWeight: 'bold', fontSize: '14px', }" > <el-table-column type="index" label="序号" width="58" align="center" ></el-table-column> <!-- 表头换行方式一,使用头部插槽方式,将表头文字拆分在两个div中,因为div盒子是块元素 所以两个div会换行,所以表头就换行了,此方式适用于固定数据的表头换行 --> <el-table-column prop="toolName" width="180" align="center"> <template slot="header"> <div>工具箱</div> <div>零件名称</div> </template> <template slot-scope="scope"> <span>{{ scope.row.toolName }}</span> </template> </el-table-column> <el-table-column label="供应商" prop="supplier" width="120" align="center"> </el-table-column> <!-- 表头换行方式二,较之于方式一,这种方式是/n换行符,加css的white-space空白样式控制--> <el-table-column :label="labelFn()" prop="supplierCountry" width="180" align="center" > </el-table-column> <!-- 表头换行方式三,动态方式 --> <el-table-column v-for="(item, index) in tableHeader" :key="index" :label="item.labelName" :prop="item.propName" width="180" align="center" :render-header="renderheader" ></el-table-column> </el-table> </div> </template> <script> export default { data() { return { // 动态数据表头就需要让后端返回来了,让其在需要换行的地方用逗号分隔开 tableHeader: [ { labelName: "型号001,价格(元)", propName: "typeOne", }, { labelName: "型号002,价格(元)", propName: "typeTwo", }, ], // 表体数据 tableBody: [ { id: "2021111101", toolName: "5G服务", supplier: "华为", supplierCountry: "中国", typeOne: "8888888", typeTwo: "9999999", }, { id: "2021111101", toolName: "6G-SERVER", supplier: "中华有为", supplierCountry: "CHINA", typeOne: "678678678", typeTwo: "789789789", }, ], }; }, methods: { labelFn() { // 在需要换行的地方加入换行符 \n ,在搭配最底下的white-space样式设置 return `供应商\n所属国家`; }, // 饿了么UI的表头函数渲染方式,这种方式和表头插槽方式有点类似 // 也是把表头的数据文字分割成两块,然后将内容渲染到两个div中(div自动换行) renderheader(h, { column, $index }) { return h("div", {}, [ h("div", {}, column.label.split(",")[0]), h("div", {}, column.label.split(",")[1]), ]); }, }, }; </script> <style lang="less" scoped> /deep/ .el-table th.el-table__cell > .cell { white-space: pre; // white-space: pre-wrap; // 也行。 } </style>
关于white-space不赘述,详情查询官方文档 developer.mozilla.org/zh-CN/docs/Web/CSS/white-space
三种方式各有特色,但是render-header会略为耗费一点点性能。
若为固定表头数据,则优先推荐使用表头插槽方式,其次推荐换行符加css方式。
若为动态数据,则只能使用表头renderheader函数了
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
倒计时提示框在网页设计中是比较常见的,可应用作自动弹窗,自动关闭,那么究竟要如何实现倒计时提示框呢?下面是基于javascript实现倒计时提示框的介绍,实现效果如下:
这篇文章主要介绍了详解Typescript里的This的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
这篇文章给大家分享的是判断字符串的长度的方法,也就是判断字符串有几个字符,这里是使用jQuery来实现的,文中的示例代码介绍得很详细,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。
request 和 response 对象的具体介绍:Request对象 -request对象表示HTTP请求,包含了请求查询字符串,参数,内容,HTTP头部等属性。常见属性有:req.app:当callback为外部文件时,用req.app访问express的实例req.baseUrl:获取路由当前安装的URL路径req.body/req.cookies:获得「请求主体
JS实现表单验证案例 本文实例为大家分享了JS实现表单验证案例的具体代码,供大家参考,具体内容如下 1.当输入框失去焦点时,验证输入内容是否符合要求 (1)获取表单输入框(2)绑定 onblur 事件(3)获取输入内容(4)判断是否符合规则(5)如果不符合规则,则显示错误提示信息 2.当点击注册按钮是,判断所有输入框的内容是否符合要求,如果不符合则阻止表单提交 (1)获取表单对象(2)微表单对象绑定 onsubmit(3)判断所有输入框是否都符合要求,如果符合,则返回true,如果有一项不符合,则返回false &l ...
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008