当前位置: 首页> 财经> 产业 > 长沙地铁最新招聘500人_乌鲁木齐在线服务平台_百度网络营销中心app_网络营销方案策划论文

长沙地铁最新招聘500人_乌鲁木齐在线服务平台_百度网络营销中心app_网络营销方案策划论文

时间:2025/7/9 6:16:47来源:https://blog.csdn.net/weixin_43191327/article/details/144248106 浏览次数:0次
长沙地铁最新招聘500人_乌鲁木齐在线服务平台_百度网络营销中心app_网络营销方案策划论文

首先:在项目模板里面使用的是 unplugin-element-plus 。这个插件的功能只是在你导入组件的时候自动导入css样式,并不会给你自动导入组件。Element Plus 文档

为什么不使用自动导入的插件呢?我在 Vben Admin 的仓库也提了相关issue。作者的回复是尊重每个开发者的习惯,如果需要就自己去配置。

接下来就说下如何配置自动导入。我之前就写过一遍介绍配置自动导入的文章,我就不在重复的写了,可以点击下面的链接去看一下。

vue3.0 + vite + ts 完成自动导入 vue API 和 自动导入组件及 element loading 指令无法正常使用解决方法

重点来了

当我们配置好自动导入的时候,我们会遇到一个问题,那就是切换主题的时候,无论怎么切换都是白色主题,无法切换到暗黑主题。我们一起来看下效果
在这里插入图片描述
可以看到,使用了自动导入之后主题变得不对了。

在 main.ts 文件导入这个样式就可以解决 import 'element-plus/theme-chalk/dark/css-vars.css'

在引入之后就会有 css var 变量了,html.dark .el-card
请添加图片描述

在这里说一下问题的原因:本质上就是选择器的优先级问题。

在 Vben Admin 里面切换主题的代码主要在这几个文件,文件路径在 packages/effects/hooks/src/use-design-tokens.tspackages/@core/base/shared/src/utils/update-css-variables.ts。可以看到虽然 css 变量被更新了,但是却被 Element plus 的原始css变量覆盖掉了。除了导入 Element Plus 的黑暗主题,还有一种方法就是修改 updateCSSVariables 方法,将选择器修改为 body,也就是加强css的优先级,就可以覆盖掉 Element plus 的原始主题。

这是修改后的代码,不过还是建议直接导入 Element plus 的暗黑主题。

function updateCSSVariables(variables: { [key: string]: string },id = '__vben-styles__',
): void {// 获取或创建内联样式表元素const styleElement =document.querySelector(`#${id}`) || document.createElement('style');styleElement.id = id;// 构建要更新的 CSS 变量的样式文本let cssText = 'body {';for (const key in variables) {if (Object.prototype.hasOwnProperty.call(variables, key)) {cssText += `${key}: ${variables[key]};`;}}cssText += '}';// 将样式文本赋值给内联样式表styleElement.textContent = cssText;// 将内联样式表添加到文档头部if (!document.querySelector(`#${id}`)) {setTimeout(() => {document.head.append(styleElement);});}
}
关键字:长沙地铁最新招聘500人_乌鲁木齐在线服务平台_百度网络营销中心app_网络营销方案策划论文

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: