WordPress极简博客 WordPress极简博客
  • 新鲜事
  • 战疫情
  • UI素材
    • UI素材
    • 电商/节日
    • PPT
      • 节日庆典
      • 工作汇报
      • 商业计划书
    • word
      • 简历竞聘
      • 合同/公文
  • 创客头条
    • 音乐分享
    • 初创文章
    • 极客头条
    • 生活趣事
    • 生活日记
    • 防骗指南
  • 编程教学
    • API日记
    • Linux安全栏目
      • Linux运维安全汇总
      • DDOS攻击防护
      • XSS攻击防护
      • SQL安全防护
    • Python技术栏目
      • Python基础入门
      • Python基础结构
    • WordPress技术栏目
      • WP主题
      • WordPress技术教程
      • RIPRO主题美化
    • WordPress漏洞发布
    • 技术教程汇总
    • 严选源码
  • 专题
  • 基友
  • 隐私
  • 注册
    登录
立即登录
  • 首页
  • 云优化
  • 新疫情
  • 新鲜事
    • 热文
    • 极客
    • 生活
  • 技术篇
    • WP主题
    • 技术教程
    • Python入门
    • Python基础
  • 专题篇
  • 友链君
首页 初创 网页自适应跟随系统深色模式

网页自适应跟随系统深色模式

夏柔 9月 19, 2021

近几年,各个主流操作系统都逐渐开端注重深色方式,从而改善用户在环境光亮低时的阅读体验。随着水果在 iOS 13 与 macOS Mojave 中添加了深色方式,除了 Linux 以外一切的主流操作系统都曾经完成了系统层级的深色方式。Linux 由于 DE、WM 的种类繁杂暂时没有统一的标准,但目前可以经过深色 GTK+ 主题、阅读器插件等方式完成“伪全局”深色方式。既然有了系统层级的适配,阅读器就可以读取深色方式开关,从而完成网页的自顺应。这就是新标准 prefers-color-scheme。

夏柔在2020年4月份写过类似的教程,大家有兴趣可以前去看下,原文地址:https://www.wpon.cn/16732.html

首先,大家知道什么是prefers-color-scheme吗?

什么是prefers-color-scheme?

去年7月末,W3C发布的 Media Queries Level 5 标准草案 中提到了新的属性 prefers-color-scheme,大致的内容就是网页可以通过这个CSS的条件,来获取用户设备当前的颜色模式。

通俗的讲,我们在前台切换设备的颜色模式,网页也可以跟着自动切换。

这个东西怎么用?

prefers-color-scheme提供了两个值;分别是 light 以及 night;

顾名思义,light就是白天模式的样式代码,则night是深色模式的样式代码;

详细介绍:

  • light——浏览器宿系统使用亮色主题的界面,同时也是默认值,浏览器 privacy.resistFingerprinting 被设置为 true 时返回的也将是这个值 
  • dark——浏览器宿系统使用深色模式主题的界面

还有一个已废弃的值:

  • no-preference——浏览器宿系统使用未知主题的界面,当较旧版本的浏览器在宿系统不支持系统层级的深色模式时会返回这个值,较旧版本的浏览器 privacy.resistFingerprinting 被设置为 true 时返回的也将是这个值 

CSS样式代码:

@media (prefers-color-scheme: light) {

// 亮色模式样式

}

@media (prefers-color-scheme: dark) {

// 深色模式样式

}

通过条件规则组就可以作出判断。

我们可以将这串代码放在网站的自定义style里面,如图:

网页自适应跟随系统深色模式-WordPress极简博客

或者,也可以这么写:

@media not (prefers-color-scheme: dark) {

// 亮色模式样式

}

@media (prefers-color-scheme: dark) {

// 深色模式样式

}

当然了,目前测试在MacOS系统完美适配,Win系统暂时没有进行测试,

夏柔已经将代码部署到线上了,大家可以来看看,项目地址: https://www.wpon.cn/html/text1.html

源代码下载

Dark-light
检测有效,可下载
类型: html

像我现在用的这款主题,其中已经包含了Javascript,来实现用户跟随深色模式的代码,大家可以参考一下:

if (window.matchMedia('prefers-color-scheme: dark').matches) {
  // 深色模式的条件代码
} else {
  // 非深色模式的条件代码
}

另外还可以监听系统深色模式的状态,在系统开关深色模式时作出反应:

window.matchMedia('(prefers-color-scheme: dark)').addListener(e => {
  if (e.matches) {
    // 深色模式的条件代码
  } else {
    // 非深色模式的条件代码
  }
});

浏览器的兼容性

网页自适应跟随系统深色模式-WordPress极简博客

看得懂吗?看不懂别急,夏柔给你重新写了一个表,你来看看:

以下是夏柔测试的浏览器,和官方的浏览器兼容性对比:

兼容不兼容
Chrome(MacOS、夏柔)IE(孤零零)
WebView(MacOS、夏柔)
微信X5内核(华为鸿蒙、夏柔)
Firefox(MacOS、夏柔)
IOS 上的 Safari 浏览器(官方通过、夏柔未测试)
Samsung Internet(官方通过、夏柔未测试)
Opera Android(官方通过、夏柔未测试)
Opera(官方通过、夏柔未测试)
Chrome(华为鸿蒙、夏柔)
Edge(官方通过、夏柔未测试)
Onion(洋葱)(MacOS、华为鸿蒙、夏柔)
更多暂未测试(没时间了,抱歉)

如何应用到WordPress的主题上?

最简单的方法,就是下面的样式代码添加至当前主题footer.php 文件里

<style>
@media (prefers-color-scheme: light) { 
// 亮色模式样式 
} 
@media (prefers-color-scheme: dark) { 
// 深色模式样式 
}
</style>

再或者更简单的方法,把亮色的代码去掉就可以了;

<style>
@media (prefers-color-scheme: dark) { 
// 深色模式样式 
}
</style>

只不过,夏柔并不打算将教程写出来,如果大家有能力的话可以自己写;

实在不会可以联系夏柔定制,夏柔QQ:15001904;

最后,转载请注明来源,谢谢!

#夏柔#教程#深色模式#跟随系统深色模式
3
等 3 人赞过
J2dcg1.png
猜你喜欢
  • 绿联NAS搭建ubantu虚拟机安装宝塔面板保姆级教程
  • 阿里云用了管家备案感觉效率提高了
  • 自动化更新资源站系统上线
  • WP资源下载数据根据SQL语句导出
  • 三年腾讯云服务器到期了
  • 宝塔设置自动重启停止运行的Mysql数据库
  • 融合怪脚本:一键测试linux服务器性能、网络、IP质量等
  • 免费ssl数字证书申请-freegetssl
  • 朋友当兵去了
  • fastcdn之SSH列表数据接口
29 5月, 2020
调研不能一味讲究接待规格(红船观澜・反对形式主义②)
夏柔
站长
夏山如碧 - 怀柔天下
1719
文章
25
评论
58145K
获赞
版权声明

文章采用创作共用版权 CC BY-NC-ND/2.5/CN 许可协议,与本站观点无关。

如果您认为本文侵犯了您的版权信息,请与我们联系修正或删除。
投诉邮箱wpsite@aliyun.com

栏目推荐
Python基础入门33
WordPress技术教程267
前沿技术情报所22
城市创新——新消费11
最近有哪些不可错过的热文23
程序员的养生之道0
节
春
  • 新鲜事
  • 疫情实况
  • UI素材
  • 技术教程
  • 音乐分享
  • 专题
  • 友情
  • 隐私
  • 云优化
Copyright © 2019-2025 WordPress极简博客. Designed by 夏柔. 辽公网安备21010502000474号 辽ICP备19017037号-2