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';
}