文章目录
- 前言
- 官方示例
- 自定义条件样式
- 设置背景颜色样式
- stripe属性 + 设置背景颜色样式
- 设置字体颜色
- 总结
前言
可以通过指定 Table 组件的 row-class-name 属性来为 Table 中的某一行添加 class,表明该行处于某种状态。
官方示例
代码如下:
<el-table:data="tableData"style="width: 100%":row-class-name="tableRowClassName">
定义为第2行为 warning-row 样式,第4行为 success-row 样式
methods: {tableRowClassName({ row, rowIndex }) {if (rowIndex === 1) {return 'warning-row';} else if (rowIndex === 3) {return 'success-row';}return '';}
},
自定义条件样式
row 是当前行的一个对象,rowIndex 是第几行,起始下标为0,表示第1行
定义样式根据 row.testNum 属性来判断,大于100为 success-row 样式,小于70为 warning-row 样式
methods: {tableRowClassName({ row, rowIndex }) {if (row.testNum > 100) {return 'success-row';} else if (row.testNum < 70) {return 'warning-row';}return '';}
}
设置背景颜色样式
使用 scoped 设置了样式作用域,这个会影响到 class 的样式
可以尝试使用 /deep/
深度选择器,必须在 sass 或 less 下
<style rel="stylesheet/scss" lang="scss" scoped>/deep/ .el-table .warning-row {background: #ffdcdc;}/deep/ .el-table .success-row {background: #d0d3ff;}
</style>
或者使用 >>> 深度选择器,只支持css
<style>.el-table >>> .warning-row {background: #ffdcdc;}.el-table >>> .success-row {background: #d0d3ff;}
</style>
我们的样式颜色将会改变,效果如图:
当我们出现下图所示,达到条件的样式却不生效:
先看看是不是加了 stripe 属性的原因
<el-table:data="tableData"style="width: 100%"stripe:row-class-name="tableRowClassName">
stripe属性可以创建带斑马纹的表格。它接受一个Boolean,默认为false,设置为true即为启用。
stripe属性是带斑马纹的表格样式,它和 row-class-name 共存时是没有效果滴
stripe属性 + 设置背景颜色样式
那么问题来了,我们既要stripe属性设置斑马纹的表格样式,又要 row-class-name 设置背景样式,又该如何应对?
步骤:
1、 要使用深度选择器+td
2、 因为table默认有背景色,所以在设置背景色的时要写td,并设置优先级
<style rel="stylesheet/scss" lang="scss" scoped>/deep/ .el-table .warning-row td {background: #ffdcdc !important;}/deep/ .el-table .success-row td {background: #d0d3ff !important;}
</style>
效果如图:
设置字体颜色
<style rel="stylesheet/scss" lang="scss" scoped>/deep/ .el-table .warning-row {color: #ff0000;}/deep/ .el-table .success-row {color: #0055ff;}
</style>
效果如图:
总结
使用后没有效果的问题!!!
第一步:看看 class 有没有加上去
第二步:如果 class 都加上去了也没有效果,看一下有没有使用 stripe 这个属性,这个属性是带斑马纹的表格样式,它和 row-class-name 共存时是没有效果滴
第三步:如果你也没有使用到 stripe 这个属性,那就要找样式的问题啦
第四步:要 stripe 属性又要 row-class-name 属性,就要设置样式优先级(一定要加td 否则不生效)