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>
相关推荐
zqlcoding几秒前
使用el-table表格动态渲染表头数据之后,导致设置fixed的列渲染出现问题
前端·javascript·vue.js
海底火旺几秒前
破解二维矩阵搜索难题:从暴力到最优的算法之旅
javascript·算法·面试
爱吃的强哥12 分钟前
vue3 使用 vite 管理多个项目,实现各子项目独立运行,独立打包
前端·javascript·vue.js
涵信20 分钟前
第十节:性能优化高频题-虚拟DOM与Diff算法优化
javascript·vue.js·性能优化
拖孩27 分钟前
【Nova UI】十一、组件库中 Icon 组件的测试、使用与全局注册全攻略
前端·javascript·vue.js·ui·sass
天天扭码1 小时前
深入解析 JavaScript 中的每一类函数:从语法到对比,全面掌握适用场景
前端·javascript·面试
凉豆菌2 小时前
在html中如何创建vue自定义组件(以自定义文件上传组件为例,vue2+elementUI)
vue.js·elementui·html
广西千灵通网络科技有限公司2 小时前
基于 springboot+vue+elementui 的办公自动化系统设计(
vue.js·spring boot·elementui
北上ing2 小时前
同一页面下动态加载内容的两种方式:AJAX与iframe
前端·javascript·ajax
纪元A梦2 小时前
华为OD机试真题——推荐多样性(2025A卷:200分)Java/python/JavaScript/C++/C语言/GO六种最佳实现
java·javascript·c++·python·华为od·go·华为od机试题