Javascript 如何通过系统防止强制暗模式?

Javascript 如何通过系统防止强制暗模式?,javascript,css,google-chrome,Javascript,Css,Google Chrome,网站和应用程序上的暗/光模式切换设置是树状的,还有一些系统默认的主题模式也可用,比如chrome dev tools提供了强制暗模式,但我希望我的网站能够以构建的方式查看。那么,如何防止chrome应用的强制暗模式呢 我尝试了首选配色方案媒体查询,但我想,我做错了什么或遗漏了什么 @media (prefers-color-scheme: dark) { body { background: #fff; } } TL;博士,到目前为止这是不可能的 为什么我们需要

网站和应用程序上的暗/光模式切换设置是树状的,还有一些系统默认的主题模式也可用,比如chrome dev tools提供了强制暗模式,但我希望我的网站能够以构建的方式查看。那么,如何防止chrome应用的强制暗模式呢

我尝试了
首选配色方案
媒体查询,但我想,我做错了什么或遗漏了什么

@media (prefers-color-scheme: dark) {
    body {
        background: #fff;
    }
}
TL;博士,到目前为止这是不可能的 为什么我们需要这个? 似乎有一些安卓手机,Chrome根据他们为手机选择的主题模式(明暗对比)默认启用了这一功能

如果您在2017-2018年间开发了模板并拥有旧项目,当客户投诉时,客户将要求退款。如果您不知道存在这样的功能,则几乎不可能进行诊断。在许多情况下,网站是不可读的

它使网站上的黑暗/光明切换体验无效(破坏CSS网站上关于如何操作的体验)。无法检测何时发生这种情况也无济于事,我们可以删除切换,直接为黑暗主题服务,或者警告用户出了问题

无解 现在还没有办法改变它,他们甚至改变了图像的背景,他们也做得很好,.jpeg 我找到了一个解决办法(至少对我来说):

如果主体的背景色设置为黑色,并添加背景图像:带有明亮颜色的线性渐变(以覆盖背景色),则chrome似乎被欺骗,认为一切正常,并停止接触/重新着色其他元素。至少在今天(Chrome 86版)-也许这有帮助

body { 
   background-image: linear-gradient(#ffffff, #ffffff); 
   background-color: #000000;
}

你不能强迫用户做任何事。如果他们喜欢用自己的样式查看,他们可以用自己的(黑色)样式查看。@我只是不想让系统覆盖我的设置。这就是我说的:你不能将你的设置强加给用户。如果用户系统设置为覆盖你的网站,那么你对此无能为力。我经常不得不使用开发工具和/或我的手写笔或Stylebot插件修补网站,因为“以其构建方式”对我来说是不可读的。你的小字体:白色文本上的浅灰色可能看起来很酷,但我看不懂。这就是为什么最终用户总是被允许并且能够覆盖你的“设置”。用户就是国王。如果我有强制高对比度模式的设置,可能是因为我的视力限制需要它;下一步你会想办法覆盖它吗?强迫我看不懂你的网站?
!重要信息
CSS中的规则是为了让用户能够覆盖网站的样式而创建的,而不是相反。“如果您在2017-2018年间开发模板并拥有旧项目,客户在收到客户投诉时会要求退款。”处理这一问题实际上是您的工作,很可能是保持模板的更新和现代化。@StephenP,“更新和现代化”我不知道这对于启用force dark意味着什么。我可以使用--force dark mode(modern),检测它,并用“prefers color scheme:dark”修改任何需要更改的颜色/图像#启用黑暗力量是一种残忍的方法,它试图自己做到这一点。它不是完美的。我的意思是,“旧”项目需要更新——也就是说,网站建设中使用的模板应该不断修改,以适应新技术、浏览器版本、操作系统功能(如亮/暗模式),当然,还要保持“合理”的向后兼容性。但是如果用户想要使用强力黑暗模式的大锤,没有办法阻止它。在打开的情况下进行测试;教育客户不可能控制一切。对不起,我想我说得不清楚。我的主要问题是OP想要强制一个外观,而web不是这样工作的。“打开它进行测试”这绝对是我认为最好的建议。这不是答案。