当前位置:首页 > 科技  > 软件

快速了解 CSS light-dark 函数及其应用

来源: 责编: 时间:2024-07-24 14:48:15 354观看
导读介绍一个和主题密切相关的CSS特性:light-dark,有了它,可以更灵活的适配各种主题模式。一、prefers-color-scheme一般来讲,网站会有三种主题模式,白天、黑夜、自动跟随系统,比如下面的 MDN 官网。前面两者是固定的,不会跟随系

Dun28资讯网——每日最新资讯28at.com

介绍一个和主题密切相关的CSS特性:light-dark,有了它,可以更灵活的适配各种主题模式。Dun28资讯网——每日最新资讯28at.com

一、prefers-color-scheme

一般来讲,网站会有三种主题模式,白天、黑夜、自动跟随系统,比如下面的 MDN 官网。Dun28资讯网——每日最新资讯28at.com

Dun28资讯网——每日最新资讯28at.com

你也可以访问以下在线链接查看实际效果Dun28资讯网——每日最新资讯28at.com

  • CSS prefers-color-scheme (codepen.io)[1]
  • CSS prefers-color-scheme (juejin.cn)[2]

二、light-dark 和 color-scheme

除了上面这种方式,现在light-dark也能实现类似的效果。Dun28资讯网——每日最新资讯28at.com

https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/light-darkDun28资讯网——每日最新资讯28at.com

light-dark是一个CSS函数,语法很简单,只需要传两个值。Dun28资讯网——每日最新资讯28at.com

/* 颜色 */color: light-dark(black, white);/* 自定义属性 */color: light-dark(var(--light), var(--dark));

第一个值是在白天模式下的值,第二个是在黑夜模式下的值。Dun28资讯网——每日最新资讯28at.com

那这个模式是由什么决定的呢?答案就是color-scheme。Dun28资讯网——每日最新资讯28at.com

回到前面的例子,如果用light-dark实现会更加简单。Dun28资讯网——每日最新资讯28at.com

:root{  --bg: light-dark(aliceblue, #000);  --color: light-dark(#000, #fff);}:has(#light:checked){  body{    color-scheme: light;/*白天模式*/  }}:has(#dark:checked){  body{    color-scheme: dark; /*黑夜模式*/  }}:has(#auto:checked){  body{    color-scheme: light dark; /*自动模式*/  }}

简单解释一下,首先提前定义好白天和黑夜模式下的值,然后在切换主题的时候就不是改值了,而是改color-scheme。Dun28资讯网——每日最新资讯28at.com

同样可以实现三种主题模式的动态切换了,效果如下:Dun28资讯网——每日最新资讯28at.com

Dun28资讯网——每日最新资讯28at.com

你也可以访问以下在线链接查看实际效果Dun28资讯网——每日最新资讯28at.com

  • CSS light-dark (codepen.io)[3]
  • CSS light-dark (juejin.cn)[4]

是不是比前面的实现方式更简单了,而且思路更加直观了Dun28资讯网——每日最新资讯28at.com

三、更灵活的主题适配方式

在实际需求中,不仅仅有黑夜和白天,还有各种各样的主题色。这些主题色往往还会区分白天和黑夜,毕竟同一种红色在白色背景和黑色背景观感肯定是不同的。Dun28资讯网——每日最新资讯28at.com

比如下面这种颜色,在黑色背景上就会有些突兀,或者刺眼。Dun28资讯网——每日最新资讯28at.com

Dun28资讯网——每日最新资讯28at.com

你也可以访问以下在线链接查看实际效果Dun28资讯网——每日最新资讯28at.com

  • CSS light-dark primary (codepen.io)[5]
  • CSS light-dark primary (juejin.cn)[6]

四、兼容性和总结

再来说一下兼容性,要求 Chrome 123+,虽然是刚推出来不久,但现在(2024-6-22)所有浏览器都已经兼容了。Dun28资讯网——每日最新资讯28at.com

Dun28资讯网——每日最新资讯28at.com

这意味着已经是一个标准了,放心学习,下面总结一下本文要点Dun28资讯网——每日最新资讯28at.com

  • 网站一般会有三种主题模式,白天、黑夜、自动跟随系统
  • 自动跟随系统主题色,需要用媒体查询prefers-color-scheme
  • light-dark语法很简单,可以传两个颜色,分别是白天模式和黑夜模式的颜色
  • light-dark的颜色模式由color-scheme来决定
  • light-dark可以以更灵活的方式来适配各种主题色

light-dark可以说是 web 上关于主题颜色的终极解决方案了,期待可以早日使用。Dun28资讯网——每日最新资讯28at.com

[1]CSS prefers-color-scheme (codepen.io): https://codepen.io/xboxyan/pen/KKLoEjB。Dun28资讯网——每日最新资讯28at.com

[2]CSS prefers-color-scheme (juejin.cn): https://code.juejin.cn/pen/7383215058630737972。Dun28资讯网——每日最新资讯28at.com

[3]CSS light-dark (codepen.io): https://codepen.io/xboxyan/pen/mdYxgVm。Dun28资讯网——每日最新资讯28at.com

[4]CSS light-dark (juejin.cn): https://code.juejin.cn/pen/7383215549599186954。Dun28资讯网——每日最新资讯28at.com

[5]CSS light-dark primary (codepen.io): https://codepen.io/xboxyan/pen/LYodvLR。Dun28资讯网——每日最新资讯28at.com

[6]CSS light-dark primary (juejin.cn): https://code.juejin.cn/pen/7383215899521597474。Dun28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-103166-0.html快速了解 CSS light-dark 函数及其应用

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 聊一聊 CSS 的十个技巧和窍门

下一篇: 璀璨星河有你·鸿蒙系列沙龙报名火热进行中!

标签:
  • 热门焦点
  • 5月iOS设备好评榜:iPhone 14仅排第43?

    来到新的一月,安兔兔的各个榜单又重新汇总了数据,像安卓阵营的榜单都有着比较大的变动,不过iOS由于设备的更新换代并没有那么快,所以相对来说变化并不大,特别是iOS好评榜,老款设
  • JavaScript 混淆及反混淆代码工具

    介绍在我们开始学习反混淆之前,我们首先要了解一下代码混淆。如果不了解代码是如何混淆的,我们可能无法成功对代码进行反混淆,尤其是使用自定义混淆器对其进行混淆时。什么是混
  • JavaScript学习 -AES加密算法

    引言在当今数字化时代,前端应用程序扮演着重要角色,用户的敏感数据经常在前端进行加密和解密操作。然而,这样的操作在网络传输和存储中可能会受到恶意攻击的威胁。为了确保数据
  • 三万字盘点 Spring 九大核心基础功能

    大家好,我是三友~~今天来跟大家聊一聊Spring的9大核心基础功能。话不多说,先上目录:图片友情提示,本文过长,建议收藏,嘿嘿嘿!一、资源管理资源管理是Spring的一个核心的基础功能,不
  • 拼多多APP上线本地生活入口,群雄逐鹿万亿市场

    Tech星球(微信ID:tech618)文 | 陈桥辉 Tech星球独家获悉,拼多多在其APP内上线了“本地生活”入口,位置较深,位于首页的“充值中心”内,目前主要售卖美食相关的
  • ESG的面子与里子

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之三伏大幕拉起,各地高温预警不绝,但处于厄尔尼诺大“烤”之下的除了众生,还有各大企业发布的ESG报告。ESG是“环境保
  • 阿里瓴羊One推出背后,零售企业迎数字化新解

    作者:刘旷近年来随着数字经济的高速发展,各式各样的SaaS应用服务更是层出不穷,但本质上SaaS大多局限于单一业务流层面,对用户核心关切的增长问题等则没有提供更好的解法。在Saa
  • 到手价3099元起!iQOO Neo8 Pro今日首销:安卓性能最强旗舰

    5月23日,iQOO如期举行了新品发布会,全新的iQOO Neo8系列也正式与大家见面,包含iQOO Neo8和iQOO Neo8 Pro两个版本,其中标准版搭载高通骁龙8+,而Pro版更
  • iQOO Neo8 Pro真机谍照曝光:天玑9200+和V1+旗舰双芯加持

    去年10月,iQOO推出了iQOO Neo7系列机型,不仅搭载了天玑9000+,而且是同价位唯一一款天玑9000+直屏旗舰,一经上市便受到了用户的广泛关注。在时隔半年后,
Top