Npcink Blog
切换菜单

非变量方式处理主题当前颜色状态

更新于:2023年4月3日

本页目录2 节

除了前面介绍的使用 CSS 变量来让 HTML 元素跟随主题颜色外,主题还在 html 根元素上增加了 data-color-scheme 属性来标记当前颜色。

data-color-scheme 逻辑

  • 当首次进入页面(用户没有手动切换颜色时),data-color-scheme 属性值永远跟随系统颜色,如下所示:
操作系统状态data-color-scheme 值
浅色light
深色dark
不支持light
  • 当用户手动切换过颜色时,data-color-scheme 属性值为用户切换后的状态

示例

有以下 html:

<div class="sample_word">
This is an example.
</div>

要求:浅色模式时颜色为红色,深色模式时颜色为蓝色。则写以下 CSS

[data-color-scheme="light"] .sample_word {
color: red;
}
[data-color-scheme="dark"] .sample_word {
color: blue;
}