设置element plus table上的header-cell-class-name为什么没有生效?

作者站长头像
站长
· 阅读数 6

设置element plus table上的header-cell-class-name为什么没有生效?

<template>
<el-table :data="equipmentLedgerManagementData" border size="small" header-cell-class-name="table-header">
        ...
</templete>
<style>
 .table-header {
    background-color: red;
  }
</style>

在webstorm中这个样式呈现灰色,说明它没有被使用。从页面显示上发现这个样式也没有生效(打开开发者工具发现根本没有该规则),但是我将这段代码复制到element plus playground却生效了,这是为什么?该怎么解决?设置element plus table上的header-cell-class-name为什么没有生效?

__

设置element plus table上的header-cell-class-name为什么没有生效?

从图中可以看到table-header类名确实添加到了th上了,但是对应的规则却没有。应该是没有打包到最后的产物,这是怎么回事?和vite的配置有关系吗?

// vite.config.js
import {fileURLToPath, URL} from 'node:url'

import {defineConfig} from 'vite'
import vue from '@vitejs/plugin-vue'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import {ElementPlusResolver} from 'unplugin-vue-components/resolvers'

// https://vitejs.dev/config/
// noinspection JSUnusedGlobalSymbols
export default defineConfig({
  plugins: [
    vue(),
    AutoImport({
      imports: ['vue'],
      resolvers: [ElementPlusResolver()],
    }),
    Components({
      resolvers: [ElementPlusResolver()],
    }),
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  }
})

附:

回复
1个回答
avatar
test
2024-06-23

你的stackblitz案例中style是带scoped的,而上面style不带scoped,这有很大差别。不带scoped,是全局样式,应该是可以找到这个样式的,加上scoped表示私有样式,而table-header不是一个组件class,所以需要使用:deep()进行样式穿透才会生效

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容