文章目录
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';}