欢迎光临散文网 会员登陆 & 注册

前端必备:prefers-color-scheme自由切换网站主题背景色变化,提升客户体验

2022-09-18 22:52 作者:布依前端  | 我要投稿

哈喽,各位小伙伴,大家好,我是 布衣前端,每次分享希望都能大家有所帮助。

prefers-color-scheme这个新的css特性,想必大家并不陌生,写文章的目的就是分享给大家怎么正确用好它以及提升网站用户体验。

prefers-color-schemeCSS @medialightdarkprefers-color-schemeW3C  2020  7  31cssprefers-color-scheme Wiki RainSlide ZZES_REN urusai-me SimGenius

prefers-color-scheme属性兼容性一览表

prefers-color-schemewindowIOSLinux,足以说明prefers-color-scheme属性已经稳定成熟,可以用于生产环境了

如何正确使用prefers-color-scheme属性呢?答:需要在全局css文件内部写入下面代码即可,用于监听系统主题变化结果:

bodybackground-color: var(--color-background)background-color: var(--white-color-background);

提示::root表示根元素,拥有更高的优先级,这里可以设置全局样式变量,通过css的var方法来获取对应变量且获得相应的样式。


js

html

html是【色】

【亮色】主题,当window未设置其他主题时的默认主题

windows

设置window10专业版主题,【个性化】里面设置

再去刷新浏览页面,此时页面效果是【暗色】主题,原因:当window10设置【暗色】主题后,css的prefers-color-scheme属性通过@media媒体监听到变化后,触发了css媒体事件,执行样式渲染,这个样式就是根据开发者设置的主题样式来渲染的。

监听到window10主题设置【暗色】后的页面展示


当网站不满足系统默认主题,还想提供用户自己切换主题的功能,代码中有两个按钮,【浅色主题】和【暗色主题】就是干这件事情的。用户可以随意切换,具体切换代码可以到js部分查看。

除了css媒体能监听操作系统主题变化,js也能监听的,当监听到后可以增强js业务逻辑,比如设置某个主题下布局变化、语音播报当前模式等等和其他业务处理逻辑,需要设置页面加载后添加如下代码即可

。学完了就去给自己的项目增加主题切换体验一哈prefers-color-scheme属性神奇之处吧。

总结prefers-color-scheme监听方式:

  1. css里通过@media监听

  2. js里面通过matchMedia监听

  3. 两种方式都能监听到操作系统主题变化后的值

更多精彩内容,欢迎关注【布依前端】公众号,更多前端文章在陆续更新中。


前端必备:prefers-color-scheme自由切换网站主题背景色变化,提升客户体验的评论 (共 条)

分享到微博请遵守国家法律