【发布时间】:2020-11-18 12:17:58
【问题描述】:
我一直在寻找解决方案(在线和在 Chrome 控制台中),但没有成功。
实现暗模式的“正确”方式是使用带有“prefers-color-scheme”参数的媒体查询:
body {
color:#fff;
}
@media (prefers-color-scheme: dark) {
body {
color:#fff;
background:#333333
}
}
If you can read this text Dark Mode is Working
某些浏览器(IE、Firefox Mobile 等)或使用 Xamarin 制作的应用程序无法以正确的方式传递此参数,因此我正在寻找一种手动更改它的方法。 可能是这样的:
screen.prefers-color-scheme = "dark"; //or
window.prefers-color-scheme = "dark"; //or
navigator.prefers-color-scheme = "dark";
我希望它是一个可从控制台读取的变量,但我浪费了很多时间寻找它但没有成功,我还阅读了许多关于名为“color-scheme”的元的帖子,但在我的项目中没有这样的东西(并且暗模式工作正常)
此参数在 Windows 和 Mac osx 上实时读取,如果您在打开浏览器的情况下切换主题,则会切换暗模式。
这可以保存在会话中吗?我疯了????
【问题讨论】:
-
您不能在网页中使用 JavaScript 设置
prefers-color-scheme(据我所知)。但是,如果您只想切换设置以进行调试,则可以在 Chrome DevTools 中进行。如果您打开了 DevTools,请打开“运行命令”窗口。您可以使用 Ctrl-Shift-P 或 Cmd-Shift-P 执行此操作。然后输入Emulate CSS prefers-color-scheme: light或Emulate CSS prefers-color-scheme: dark。 -
很高兴您提出这个问题,不仅仅是“如何根据偏好切换颜色”,而是“我可以更改该偏好”吗? IMO,您是否应该进行辩论不一定是必要的。这是一个很好的问题,我很想知道答案是否会改变。显然,有一些简单的方法可以检测偏好并将类应用于您的页面。但是,如果您基于
prefers-color-scheme: dark在整个样式表中写了很多修改,然后有人过来说他们想添加一个切换怎么办?这就是我所在的地方......
标签: javascript css media-queries