h5通过css进行深色模式切换

html-css022

h5通过css进行深色模式切换,第1张

prefers-color-scheme ( https://developer.mozilla.org/zh-CN/docs/Web/CSS/@media/prefers-color-scheme ) 是一种用于检测用户是否有将系统的主题色设置为亮色或者暗色的 CSS 媒体特性。利用其设置不同主题模式下的 CSS 样式,浏览器会自动根据当前系统主题加载对应的 CSS 样式。light 适配浅色主题,dark 适配深色主题,no-preference 表示获取不到主题时的适配方案。

浅色模式效果如图:

深色模式效果如图:

window.matchMedia ( https://developer.mozilla.org/zh-CN/docs/Web/API/Window/matchMedia ) 方法可以用来查询指定的媒体查询字符串解析后的结果。结合 CSS 变量和 matchMedia 的查询结果,设置对应的 CSS 主题颜色。该方法更灵活,可以单独抽离主题色进行适配,深色模式匹配 (prefers-color-scheme: dark) ,浅色模式匹配 (prefers-color-scheme: light) 。

监听主题模式,深色模式时为 body 添加类名 dark,根据 CSS 变量的响应式布局特点,自动生效 dark 类名下的 CSS。

浅色模式效果如图:

深色模式效果如图:

许多人喜欢为网站选择深色模式,也许他们更喜欢这种UI,或者他们想让眼睛免受疲劳。这篇文章将向你展示如何实现自动css深色模式,该模式根据访问者的主题而变化。

在此站点上,我定义了变量以设置主题的颜色,我配置的标准变量如下:

变量使用方法:

这样,如果你想更改主题颜色,则只需修改定义的变量,所有使用该变量的内容都会更新。

现在我们需要定义一组新的变量,这些变量将在调用css深色模式时使用。对我来说,其他变量定义如下所示:

现在,我们定义了两组变量,剩下要做的就是将 prefers-color-scheme 媒体查询添加到我们的深色变量中。

带上深色变量并在 @media 下面添加查询:

如果有人使用深色操作系统主题并访问你的网站,你的网站将自动切换到深色模式

切换前

切换后

如果你想要测试效果,可以修改自己操作系统的主题模式

现在,如果你有一个网站,不仅应该支持响应式,而且在主题方面也具有响应能力。我敢肯定,你的深夜访客或那些只喜欢深色主题网站的访客一定会感谢你。

原文地址(英文): https://kevq.uk/how-to-add-css-dark-mode-to-a-website/

在uniappnvue中,可以通过修改css来实现深色模式样式的切换。步骤如下:

1、安装uniappnvue,打开css文件,更改其中的代码。

2、将background-color和主题颜色替换成你想要的深色模式。

3、上传修改后的css文件,就可以开始使用深色模式样式了。