文章目录

  • CSS 变量
  • CSS 主题类名
  • 外部 CSS 文件

CSS 变量

  • 在需要切换主题时,只需通过 JavaScript 修改根元素(:root)上的 CSS 变量值
:root {--primary-color: blue;}.button {background-color: var(--primary-color);}
// 切换主题function changeTheme(color) {document.documentElement.style.setProperty('--primary-color', color);}

CSS 主题类名

  • 为每个主题创建一个单独的 CSS 类名(如 .theme-dark、.theme-light 等),并在这些类名下定义主题相关的样式
.theme-dark .button {background-color: black;}.theme-light .button {background-color: white;}
// 切换主题function changeTheme(theme) {document.documentElement.className = theme;}

外部 CSS 文件

  • 为每个主题创建一个单独的外部 CSS 文件(如 dark-theme.css、light-theme.css 等),并在这些文件中定义主题相关的样式。
  • 在需要切换主题时,通过 JavaScript 动态修改页面中的 元素的 href 属性,以加载不同的主题文件。
  • 这种方法的优点是可以将主题样式与主要样式分离,便于管理和缓存
<!DOCTYPE html><html><head><link id="theme" rel="stylesheet" href="dark-theme.css"></head><body><!-- 页面内容 --></body></html>
// 切换主题function changeTheme(theme) {document.getElementById('theme').href = theme + '-theme.css';}