给博客增加深色主题支持
- 新建深色主题css文件, 名称随意, 如
dark.css
- 找到主题颜色的css文件, 将所有关于颜色定义的代码复制到
dark.css
里 - 编辑
dark.css
文件内的颜色值 - 在页面任意位置增加一个切换按钮, id随意, 内容随意, 如
<button id="dark-btn">更换主题</button>
- 增加js代码用于切换
const darkBtn = document.getElementById('切换按钮ID');
darkBtn.addEventListener('click', () => {
const head = document.getElementsByTagName('head')[0];
const darkStyle = document.getElementById('dark-style');
if (darkStyle) {
head.removeChild(darkStyle);
document.cookie = 'colorScheme=light; path=/; expires=0';
} else {
const link = document.createElement('link');
link.id = 'dark-style';
link.rel = 'stylesheet';
link.href = "深色主题css文件路径(dark.css文件路径)";
head.appendChild(link);
document.cookie = 'colorScheme=dark; path=/; expires=0';
}
});
function isDarkMode() {
const cookies = document.cookie.split(';');
for (let i = 0; i < cookies.length; i++) {
let cookie = cookies[i].trim();
if (cookie.startsWith("colorScheme=")) {
const value = cookie.substring("colorScheme=".length);
return value === "dark";
}
}
return false;
}
if (isDarkMode()) {
darkBtn.click();
}
注意: 该方法需要启用缓存, 不然效果很差
提示: 快速获取网站暗色CSS的方法
- 安装 DarkReader
- 打开你的网站,使用DarkReader暗化
- 打开控制台,运行
[...document.querySelectorAll(".darkreader")]
.flatMap(stylesheet => [...stylesheet.sheet.cssRules])
.map(rule => rule.cssText)
.filter(Boolean)
.join(" ")
然后输出的css就是你网站的暗色主题
评论已关闭