
最近有很多关于 “深色” 模式的讨论,iOS、MacOS、Windows和Android都添加了全系统的深色模式,可以自动启用应用程序和程序的深色模式。这种趋势很好,但你的网站不能与这种系统范围内的主题挂钩,这是一个真正的耻辱。或者它能吗?
在我继续之前,我应该指出这个功能是一个建议的功能,目前还没有在任何浏览器中出现。了解这些东西是很好的,甚至可以在你的项目中考虑到这一点,但现在还不要试图把它推广到生产中。
prefers-color-scheme
Mozilla有一个非常全面的所有本地网络技术的清单,这里是他们对该功能的描述。
prefers-color-scheme CSS媒体功能是用来检测用户是否要求系统使用浅色或深色的主题。
让我们稍稍解读一下。我们看到它是一个 CSS media feature ,所以我们知道它是一个媒体查询。我们还可以看到它有两个选项:light 或 dark。
这意味着它看起来会像这样。
@media (prefers-color-scheme: dark) {
:root {
...
}
}
果然,这就是语法。真的很简单!
选项
让我们从Mozilla获得当前的选项列表。
no-preference
表示用户没有向系统提出任何偏好。这个关键词的值在boolean context中被评估为false。
light
表示用户已经通知系统他们喜欢浅色主题的界面。
dark
表示用户已经通知系统他们喜欢深色主题的界面。
如果你看一下spec的草案,有一个脚注说他们也在考虑包括 forced 变量。
ISSUE 8 我们应该包括 ” forced-light “和 ” forced-dark “值吗?我们不一定希望页面试图撤销系统可能正在执行的内容。
实践用途
你们中的一些人可能知道这个网站,dev.to,正在增加一个深色模式的过程中。这个网站也是开源的,所以你们任何人都可以参与进来,帮助这个过程

我已经开始将网站的主要区域转移到CSS变量上,这是故意的,是一个缓慢的推广,但它正在取得进展。

通过这个媒体查询,我们可以做这样的事情。
@media (prefers-color-scheme: dark) {
:root {
--theme-background: #303030;
--theme-top-bar-background: #1C1C1C;
--theme-top-bar-color: #FFFFFF;
--theme-top-bar-search-background: #303030;
--theme-top-bar-search-color: #FFFFFF;
--theme-container-background: #424242;
--theme-container-color: #FFFFFF;
}
}
而且,就像施了魔法一样,整个网站有一个深色的主题,以配合操作系统。

当然,这并不完美,我们还需要一些更多的变量,但你可以看到,根据用户的系统偏好来设计整个网站的主题是多么容易。
小结
正如我在文章前面所说,这不是我们所拥有的东西,而且它还没有一个ETA,但像这样的功能推动了网络的发展 如果我们在它登陆时已经准备好了,我们可以帮助把这个功能推广出去。
对于CSS,如果浏览器不理解你所写的东西,它就会被忽略。因此,一旦它在一个浏览器中出现,就立即把它推出去并做好准备,这真的没有什么坏处。
Sources:
developer.mozilla.org
drafts.csswg.org
免责声明
- 本站文章均为原创,除非另有说明,否则本站内容依据 CC BY-NC-SA 4.0 许可证进行授权,转载请附上出处链接及本声明,谢谢。
- 本站提供的资源(插件或主题)均为网上搜集,如有涉及或侵害到您的版权,请立即通过邮箱 admin@wpwpp.com 通知我们。
- 本站所有下载文件,仅用作学习研究使用,下载后请在 24小时内 删除。请支持正版,切勿用作商业用途。
- 因代码可变性,本站不保证兼容所有浏览器、不保证兼容所有版本的 WordPress,不保证兼容您安装的其他插件。
- 本站保证所提供资源(插件或主题)的完整性,但不含授权许可、帮助文档、XML文件、PSD、后续升级等。
- 使用该资源(插件或主题)需要用户有一定代码基础知识!本站只提供汉化及安装教程,仅供参考。由本站提供的资源对您的网站或计算机造成严重后果的,本站概不负责。
- 有时可能会遇到部分字段无法汉化,同时请保留作者汉化宣传信息,谢谢!
- 本站资源售价只是赞助和汉化辛苦费,收取费用仅维持本站的日常运营所需。
- 如果您喜欢本站资源,开通会员享受更多优惠折扣,谢谢支持!
- 如果网盘地址失效,请在相应资源页面下留言,我们会尽快修复下载地址。
- 本站网址:wpwpp.com,联系邮箱:admin@wpwpp.com。















暂无评论内容