本文 Element-ui 版本 2.x
问题
如下所示,在 Element-ui 的表格组件中 \n 换行转义符并没有起作用。
tableData: [ { number: '20160503', name: '王小虎', address: '2016-05-03' + '\n' + '武汉市江夏区文化大道'}, { number: '20160504', name: '张小虎', address: '2019-05-04' + '\n' + '武汉市洪山区洪山侧路'}, { number: '20160501', name: '李小虎', address: '2020-05-01' + '\n' + '南京市建邺区白龙江东街'}, { number: '20160502', name: '宋小虎', address: '2021-05-02' + '\n' + '南京市江宁区水阁路'}, ]
原因
通过查找属性,发现官方把 .cell 的 white-space 属性值设置成 normal 了。
关于 white-space 属性知识说明
定义和用法:whiteSpace 属性设置如何处理文本中的空白符(比如空格和换行符)。
语法:Object.style.whiteSpace=normal|nowrap|pre
解决
把 .cell 的 white-space 属性值,通过样式穿透设置成 pre-line 就可以了。
完整代码
<template> <div class="home"> <el-table :data="tableData" border style="width: 80%"> <el-table-column align="center" prop="number" label="编号" width="180"></el-table-column> <el-table-column align="center" prop="name" label="姓名" width="180"></el-table-column> <el-table-column align="center" prop="address" label="地址"></el-table-column> </el-table> </div> </template> <script> export default { data() { return { tableData: [ { number: '20160503', name: '王小虎', address: '2016-05-03' + '\n' + '武汉市江夏区文化大道'}, { number: '20160504', name: '张小虎', address: '2019-05-04' + '\n' + '武汉市洪山区洪山侧路'}, { number: '20160501', name: '李小虎', address: '2020-05-01' + '\n' + '南京市建邺区白龙江东街'}, { number: '20160502', name: '宋小虎', address: '2021-05-02' + '\n' + '南京市江宁区水阁路'}, ] } } } </script> <style lang="stylus" scoped> .home{ ::v-deep .el-table{ .cell { white-space: pre-line; } } } </style>