介绍
黑暗主题变得越来越流行。 随着在 Android 9+ 、Windows 和 iOS 13 中引入深色系统变体,越来越多的应用程序和网站开始提供其界面的深色版本。 有些提供了在版本之间切换的选项,但也可以使用 CSS 或 JavaScript 检测主题。 在下面的教程中,我将展示如何使用JavaScript 和 CSS 侦测系统黑暗主题并使用 CSS 更改主题色。
获取
CSS 获取
可以使用 @media (prefers-color-scheme: 主题) 来获取。
@media (prefers-color-scheme: light) { /*light : 浅色*/
/*主题设置为深色。*/
}
}
@media (prefers-color-scheme: dark) { /*dark : 深色*/
/*主题设置为浅色。*/
}
JavaScript 获取
可以使用 window.matchMedia("(prefers-color-scheme: 主题)"); 来获取。
const isDarkTheme = window.matchMedia("(prefers-color-scheme: dark)"); // 是深色
if (isDarkTheme.matches) { // 是深色
// 主题设置为深色。
} else { // 不是深色
// 主题设置为浅色。
}
设置
CSS
一般我会用 CSS 变量去改颜色 比如:
:root { /*正常情况(浅色)*/
--bgcolor: white;
--textcolor: black;
}
@media (prefers-color-scheme: dark) { /*dark : 深色*/
:root {
--bgcolor: black;
--textcolor: white;
}
}
@media (prefers-color-scheme: light) { /*light : 浅色*/
:root {
--bgcolor: white;
--textcolor: black;
}
}
Chrome 可行的HTML 代码:
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<style>
:root {
/*正常情况(浅色)*/
--bgcolor: white;
--textcolor: black;
}
@media (prefers-color-scheme: dark) {
/*dark : 深色*/
:root {
--bgcolor: black;
--textcolor: white;
}
}
body {
background-color: var(--bgcolor);
color: var(--textcolor);
}
</style>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<p>Hi</p>
</body>
</html>
就这,没了。拜。