el-table 设置行背景颜色 鼠标移入高亮问题处理

一、 设置行背景颜色

1. 需求描述

后端返回表格数据,有特定行数需要用颜色标识。类似于以下需求:

2. 解决方式

方式 区别
:row-class-name="tableRowClassName" 已返回类名的形式设置样式,代码整洁,但是会鼠标高亮,导致背景颜色失效
:cell-style="cellStyle" 以返回样式的形式设置,无鼠标高亮问题

2.1 表格代码

复制代码
<el-table
    :data="tableData"
    style="width: 100%"
    class="tableStyle"
    :row-class-name="tableRowClassName"
    :cell-style="cellStyle">
    <el-table-column
      prop="date"
      label="日期"
      width="180">
    </el-table-column>
    <el-table-column
      prop="name"
      label="姓名"
      width="180">
    </el-table-column>
    <el-table-column
      prop="address"
      label="地址">
    </el-table-column>

2.2 :row-class-name="tableRowClassName" 方式

复制代码
/**
     * @description: 合计行处理:  :row-class-name="tableRowClassName" 方式
     * @param {*}row, rowIndex
     * @return {*}
     */
    tableRowClassName({row, rowIndex}) {
        if (rowIndex === 1) {
          return 'warning-row';
        } else if (rowIndex === 3) {
          return 'success-row';
        }
        return '';
      }

2.3 :cell-style="cellStyle"方式

复制代码
/**
     * @description: 合计行处理:   :cell-style="cellStyle"方式
     * @param {*}row, rowIndex
     * @return {*}
     */
    cellStyle({ row, rowIndex }) {
     if (rowIndex === 1) {
            return 'background: #4D939F !important;color: #fff;'
        } else if (rowIndex === 3) {
           return 'background: #e6a23c !important;color: #fff;'
        }
        return '';
      }

3. 样式设置

3.1 row-class-name方式的样式

复制代码
<style lang='scss' scoped>
/deep/ .el-table .warning-row td {
  background: #4D939F !important;
  color: #fff;
}

/deep/ .el-table .fixedRow td {
  background: #4D939F !important;
  color: #fff;
  position: sticky;
  bottom: 0;
  width: 100%;
}
<style>

4. 表头设置颜色

4.1 第一种直接设置

复制代码
<style>
.el-table th.red {
  background-color: #FBBFBC;
  color: #fff;
}

.el-table th.green {
  background-color: #FEDDB6;
  color: #fff;
}
</style>

4.2 第二种 设置类名 避免样式污染 推荐第二种

注意,是.tableStyle.el-table 不是.tableStyle .el-table

复制代码
<style>
.tableStyle.el-table th.red {
  background-color: #FBBFBC;
  color: #fff;
}

.tableStyle.el-table th.green {
  background-color: #FEDDB6;
  color: #fff;
}
</style>
相关推荐
LuciferHuang2 小时前
震惊!三万star开源项目竟有致命Bug?
前端·javascript·debug
GISer_Jing3 小时前
前端实习总结——案例与大纲
前端·javascript
姑苏洛言3 小时前
编写产品需求文档:黄历日历小程序
前端·javascript·后端
知识分享小能手4 小时前
Vue3 学习教程,从入门到精通,使用 VSCode 开发 Vue3 的详细指南(3)
前端·javascript·vue.js·学习·前端框架·vue·vue3
姑苏洛言4 小时前
搭建一款结合传统黄历功能的日历小程序
前端·javascript·后端
hackchen5 小时前
Go与JS无缝协作:Goja引擎实战之错误处理最佳实践
开发语言·javascript·golang
你的人类朋友5 小时前
🤔什么时候用BFF架构?
前端·javascript·后端
知识分享小能手6 小时前
Bootstrap 5学习教程,从入门到精通,Bootstrap 5 表单验证语法知识点及案例代码(34)
前端·javascript·学习·typescript·bootstrap·html·css3
我命由我123457 小时前
前端开发问题:SyntaxError: “undefined“ is not valid JSON
开发语言·前端·javascript·vue.js·json·ecmascript·js
Jokerator7 小时前
深入解析JavaScript获取元素宽度的多种方式
javascript·css