暗/光模式切换设置在网站和应用程序是tredning和有一些系统默认的主题模式也可像 chrome dev-tools提供强制黑暗模式,但我希望我的网站被认为是在它已经建成的方式.所以,我如何防止强制黑暗模式,由 chrome 应用?我试过prefers-color-scheme媒体查询,但我想,我做错了什么或错过了什么。
prefers-color-scheme
@media (prefers-color-scheme: dark) { body { background: #fff; } }
oxcyiej71#
Google发布了一篇文章,解释了启用强制黑暗模式的不同方法,以及通过JavaScript和CSS处理它们的策略。https://developer.chrome.com/blog/auto-dark-theme/#detecting-auto-dark-theme通过在Chrome中强制暗模式,您可以进行暗模式检测,并且他们已经包含了一个选择退出的CSS属性。
:root { color-scheme: only light; }
或特定项目:
#my-onlylight-element { color-scheme: only light; }
Safari似乎也支持这一点(此表中的Chrome信息已过时,已报告错误):https://developer.mozilla.org/en-US/docs/Web/CSS/color-scheme
gcmastyq2#
似乎有Android手机,Chrome默认情况下根据他们为手机选择的主题模式(亮与暗)启用了这一功能。如果您开发模板并拥有2017-2018年的旧项目,客户会在客户投诉时要求退款。如果您不知道存在这样的功能,几乎不可能诊断。在许多情况下,网站无法阅读。它使网站上的暗/亮切换体验无效(破坏了CSS网站上的体验)。无法检测到何时发生这种情况也没有帮助,我们可以删除切换并直接提供黑暗主题或警告用户有问题。
到目前为止还没有办法改变它,他们甚至改变了图像上的背景,他们也做得很好,. jpeg...🤣😂.这不仅仅是一个简单的颜色交换。我认为他们采用“用户为王”的方法。如果用户想强制执行,他们会站在用户一边。它在每次更新中变得越来越好。它也会扰乱开发检查工具中的颜色选择器。。即使他们要添加一个“修复”,它也不会在旧的浏览器上可用。我认为他们甚至没有想到实现一种方法来绕过或“白色名单”。
这里有一个概念性的方法:https://stackoverflow.com/a/60462984/1427338我用CSS得到了混合的结果。在一个简单的页面中它可以工作,但在更复杂的项目中有太多的边缘情况来处理它们,而且没有修复图像(...它取代了图像中的背景!)
cotxawn73#
我找到了一个解决方案(至少对我来说):如果主体的背景色设置为黑色和背景图像:添加了带有明亮颜色的线性渐变(覆盖背景色),chrome似乎被欺骗了,以为一切都很好,它停止触摸/重新着色其他元素。至少从今天开始(Chrome版本86)-也许这有助于...
body { background-image: linear-gradient(#ffffff, #ffffff); background-color: #000000; }
scyqe7ek4#
我发现的一个解决方法是使用SVG图像作为在暗模式下切换颜色的背景
waxmsbnn5#
对于Reactjs应用程序,在index.html文件中添加以下行:
index.html
<meta name="color-scheme" content="only light">
注意:Google不推荐这种方法,并鼓励开发人员在他们的网站上实现暗模式的UI。更多信息在这里。
5条答案
按热度按时间oxcyiej71#
Google发布了一篇文章,解释了启用强制黑暗模式的不同方法,以及通过JavaScript和CSS处理它们的策略。
https://developer.chrome.com/blog/auto-dark-theme/#detecting-auto-dark-theme
通过在Chrome中强制暗模式,您可以进行暗模式检测,并且他们已经包含了一个选择退出的CSS属性。
或特定项目:
Safari似乎也支持这一点(此表中的Chrome信息已过时,已报告错误):https://developer.mozilla.org/en-US/docs/Web/CSS/color-scheme
gcmastyq2#
TL;DR暂时无法
为什么我们需要这个?
似乎有Android手机,Chrome默认情况下根据他们为手机选择的主题模式(亮与暗)启用了这一功能。
如果您开发模板并拥有2017-2018年的旧项目,客户会在客户投诉时要求退款。如果您不知道存在这样的功能,几乎不可能诊断。在许多情况下,网站无法阅读。
它使网站上的暗/亮切换体验无效(破坏了CSS网站上的体验)。无法检测到何时发生这种情况也没有帮助,我们可以删除切换并直接提供黑暗主题或警告用户有问题。
无解决方案
到目前为止还没有办法改变它,他们甚至改变了图像上的背景,他们也做得很好,. jpeg...🤣😂.这不仅仅是一个简单的颜色交换。
我认为他们采用“用户为王”的方法。如果用户想强制执行,他们会站在用户一边。
它在每次更新中变得越来越好。
它也会扰乱开发检查工具中的颜色选择器。。
即使他们要添加一个“修复”,它也不会在旧的浏览器上可用。我认为他们甚至没有想到实现一种方法来绕过或“白色名单”。
但是
这里有一个概念性的方法:https://stackoverflow.com/a/60462984/1427338
我用CSS得到了混合的结果。在一个简单的页面中它可以工作,但在更复杂的项目中有太多的边缘情况来处理它们,而且没有修复图像(...它取代了图像中的背景!)
cotxawn73#
我找到了一个解决方案(至少对我来说):
如果主体的背景色设置为黑色和背景图像:添加了带有明亮颜色的线性渐变(覆盖背景色),chrome似乎被欺骗了,以为一切都很好,它停止触摸/重新着色其他元素。至少从今天开始(Chrome版本86)-也许这有助于...
scyqe7ek4#
我发现的一个解决方法是使用SVG图像作为在暗模式下切换颜色的背景
waxmsbnn5#
对于Reactjs应用程序,在
index.html
文件中添加以下行:注意:Google不推荐这种方法,并鼓励开发人员在他们的网站上实现暗模式的UI。更多信息在这里。