与"How to detect if OS X is in dark mode?"类似,仅适用于浏览器.

有没有人发现有没有办法在Safari/Chrome/Firefox中检测用户的系统是否处于新的OSX暗模式?

我们想改变我们的网站的设计,以黑暗模式友好的基础上,目前的运营模式.

推荐答案

新标准是在W3C in Media Queries Level 5年前注册的.

NOTE:目前仅在Safari Technology Preview Release 68中提供

如果用户首选项为light:

/* Light mode */
@media (prefers-color-scheme: light) {
    body {
        background-color: white;
        color: black;
    }
}

如果用户偏好为dark:

/* Dark mode */
@media (prefers-color-scheme: dark) {
    body {
        background-color: black;
        color: white;
    }
}

如果用户没有偏好,也有选项no-preference.但我建议你在这种情况下只使用普通的CSS,并正确地级联CSS.

EDIT(2018年12月7日):

Safari Technology Preview Release 71年,他们宣布了Safari中的切换switch ,以使测试变得更容易.我还设置了test page,以查看浏览器行为.

如果您安装了Safari Technology Preview Release 71,您可以通过以下方式激活:

开发>;实验特性>;暗模式CSS支持

然后,如果您打开test page并打开元素判断器,您就会有一个新图标来切换暗/亮模式.

toggle dark/light mode


EDIT(2019年2月11日):


EDIT(2019年9月5日): 目前世界上有25%的人可以使用暗模式CSS.来源:caniuse.com

即将推出的浏览器:

  • iOS 13(我猜它将在苹果的主旨演讲后于下周出货)
  • EdgeHTML 76(不确定何时发货)

EDIT(2019年11月5日): 目前,世界上74%的人可以使用暗模式CSS.来源:caniuse.com


EDIT(2020年2月3日):微软Edge 79支持暗模式.(2020年1月15日发布)

我的建议是:您应该考虑实现暗模式,因为大多数用户现在都可以使用它(针对您站点的夜间用户).

Note:除:IE,<%s>Edge外,所有主要浏览器现在都支持深色模式


EDIT(2020年11月19日): 目前,世界上88%的人可以使用暗模式CSS.来源:caniuse.com

CSS框架Tailwind CSS v2.0支持暗模式.(2020年11月18日发布)


EDIT(2020年12月2日):

Google Chrome将黑暗主题模拟添加到开发工具中.来源:developer.chrome.com

Css相关问答推荐

我应该在哪里放置expo /Reaction本地项目的CSS重置文件?

为什么在RadixUi上应用Tailwincss和自定义css类不起作用?

MUI Textfield-悬停时输入标签 colored颜色

.NET 8 预览版 6 中不使用新项目模板提供 Blazor CSS 文件

尽管 URL 路径正确,但背景图像未显示

更改 20 个实例中的一个组件的样式

BootStrap:右对齐嵌套手风琴

直观地指示 IFrame 内的表单正在提交,但没有 javascript

为什么 em 不将定义的字体大小加倍?

CSS3 - RotateY() 居中

如何制作一个居中的标题样式,其中换行符将最长的行排列在底部

如何在 nth-child 中正确传递 CSS 变量?

你可以在 CSS 中扩展实体(entity)吗?

CSS和 Select 器 - 我可以 Select 具有多个类的元素吗?

CSS nth-child 表示大于和小于

使用 Bootstrap 设置身体的最大宽度

如何在 html/css 中的图像旁边垂直居中文本?

CSS3 box-shadow:inset 可以只做一侧或两侧吗?喜欢边界顶部?

可变高度的 CSS 浮动 div

模拟显示:React Native 中的内联