主要是对css变量的抽取和全局css的替换
:root{ --page-bg-color: #fff; --head-bg-color: rgba(255, 255, 255, 0.7); --text-color:rgba(0, 0, 0, 0.85); --line-color: #e8e8e8; --content-bg-color:#f0f2f5;}dark.less
@import "../../node_modules/ant-design-vue/dist/antd.dark.less";@import "./index.css";@import "./base.less";@import "./vars.css";
light.less
@import "../../node_modules/ant-design-vue/dist/antd.less";@import "./index.css";@import "./base.less";@import "./vars.css";
.pagemodal { background: white; background: var(--page-bg-color); border-radius: 5px; padding: 10px;}// 切换cssexport const changeTheme = (theme: string) => { const head = document.head; document.getElementById("theme")?.remove(); const styleDom = document.createElement("style"); styleDom.id = "theme"; styleDom.innerHTML = theme; head.appendChild(styleDom);};// 改变css变量export const changeCss = (css: string, value: string) => { const body = document.body.style; body.setProperty(css, value);};//引入ant design vue的css 白色和黑色的less文件都要引入import light from "../less/light.less";import dark from "../less/dark.less";// 切换黑暗模式或者白天模式export const DarkMode = (isDark: boolean) => { if (isDark) { changeTheme(dark); changeCss("--page-bg-color", "#141414"); changeCss("--head-bg-color", "rgba(0, 0, 0, 0.5)"); changeCss("--line-color", "#2e2e2e"); changeCss("--content-bg-color", "rgb(255 255 255 / 4%)"); changeCss("--text-color", "rgba(255, 255, 255, 0.85)"); } else { changeTheme(light); changeCss("--page-bg-color", "white"); changeCss("--head-bg-color", "rgba(255, 255, 255, 0.7)"); changeCss("--line-color", "#e8e8e8"); changeCss("--content-bg-color", "#f0f2f5"); changeCss("--text-color", "rgba(0, 0, 0, 0.85)"); }};// 白色DarkMode(false);// 黑色DarkMode(true);
效果


以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。
《Tales of Demagost: Exodus》完美复刻了《Mass Effect》的战斗体验,但角色扮演部分让我担忧
内幕人士透露《The Simpsons: Hit & Run》将推出重制版
Windsurf国内访问限制:地区、网络与账号兼容性说明
《流放之路2》0.5赛季武圣剧情开荒详尽攻略-剧情任务装备选择核心解析
极限竞速地平线6鲤鱼旗拍摄位置-鲤鱼旗具体分布与传送点详解
LEVIATÁN以2-1战胜Global Esports:取得伦敦赛程开门红