热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CSSColorAdjust速览

编者按:本文作者奇舞团前端开发工程师何文力,同时也是W3CCSS工作组成员。近来,各大平台的操作系统纷纷引入DarkMode深色模式,包括Windows、MacOS以及Android甚至iOS13也将引入该模式。深色模式引入的同时,允许我们基于用户的偏好设计特定的样式。近期,W3CCSS工作组发布了CSSColorAdjustLevel1编辑草案,也是第一版公开的工作组草案。该标准引入三个新的CS

编者按:本文作者奇舞团前端开发工程师何文力,同时也是 W3C CSS 工作组成员。

近来,各大平台的操作系统纷纷引入 Dark Mode 深色模式,包括 Windows、MacOS 以及 Android 甚至 iOS 13 也将引入该模式。深色模式引入的同时,允许我们基于用户的偏好设计特定的样式。

近期,W3C CSS 工作组发布了 CSS Color Adjust Level 1 编辑草案,也是第一版公开的工作组草案。该标准引入三个新的 CSS 属性,帮助为浏览器提供特定信息,决定浏览器在基于用户的色彩偏好时能对页面展现做出多少的改动。

color-scheme

color-scheme 属性是标准中定义的第一个属性,同时也是本标准的中心。这个属性接受两个属性值: lightdark ,如字面它们分别指代了亮色模式和深色模式。

这个属性有着一些非常重要的作用。

其中一个重要的作用是允许我们基于用户的系统偏好设定样式,对体验上做一些更完整的把控;另一个重要的作用是可以让浏览器负责去确定一些元素的颜色,当我们设定 color-schemelightdark 时,告知浏览器,这个元素是可以"适应"特定配色设定的,同时可以根据设定的偏好由浏览器决定该元素的样式。另外,也可以使用 auto 属性值,让浏览器基于用户的系统偏好做相应的设置。

值得一题的是,使用 prefers-color-scheme 这个媒体查询,让开发者知道当前系统的偏好设置,并应用对应的样式。

only 属性值

only 属性值后面必须跟着一个样式属性值,例如 only && light ,告知浏览器必须使用指定的色彩配置渲染,即使用户指定了其他的色彩配置。

forced-color-adjust

当该属性值设定为 none 时,可以将指定元素的样式控制从浏览器转交回 CSS 中,从而允许元素不受 color-scheme 指定的数值所影响。

color-adjust

在大多数显示设备上,对于页面上使用何种颜色,对于显示设备来说都是没有区别的。但是在某些情况下,例如打印机,打印机通常在白纸上使用黑色墨水打印文档,但如果打印一份以黑色背景为主的文档来说,就显得非常的浪费。

在这种情况下,更希望浏览器根据实际输出设备对输出的样式进行适当的调整。要达到这个目的,可以使用 color-adjust 属性。

它有两个属性值, economy 以及 exacteconomy 表示需要根据目标设备的情况做相应的更改,以符合最佳的使用效果。 exact 则表示保留原有样式不需要更改。

小结

虽然该草案比较简单,但是也能让我们看到 W3C 成员们在更好的 web 体验上所作出的贡献。

参考

https://css-tricks.com/a-quick-look-at-the-first-public-working-draft-for-color-adjust-module-1/

https://www.w3.org/TR/2019/WD-css-color-adjust-1-20190521/

关于奇舞周刊

《奇舞周刊》是360公司专业前端团队「 奇舞团 」运营的前端技术社区。关注公众号后,直接发送链接到后台即可给我们投稿。

CSS Color Adjust 速览


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 我们


推荐阅读
  • scrcpy通过adb调试的方式来将手机屏幕投到电脑上,并可以通过电脑控制您的Android设备。它可以通过USB连接,也可以通过Wifi连接(类似于隔空投屏),而且不需要任何ro ... [详细]
  • 本文介绍了响应式页面的概念和实现方式,包括针对不同终端制作特定页面和制作一个页面适应不同终端的显示。分析了两种实现方式的优缺点,提出了选择方案的建议。同时,对于响应式页面的需求和背景进行了讨论,解释了为什么需要响应式页面。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 安卓select模态框样式改变_微软Office风格的多端(Web、安卓、iOS)组件库——Fabric UI...
    介绍FabricUI是微软开源的一套Office风格的多端组件库,共有三套针对性的组件,分别适用于web、android以及iOS,Fab ... [详细]
  • 本文介绍了腾讯最近开源的BERT推理模型TurboTransformers,该模型在推理速度上比PyTorch快1~4倍。TurboTransformers采用了分层设计的思想,通过简化问题和加速开发,实现了快速推理能力。同时,文章还探讨了PyTorch在中间层延迟和深度神经网络中存在的问题,并提出了合并计算的解决方案。 ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • 其实之前也有下载过完整的android源码,但是从来没有对这个做过一些总结,在加上最近需要经常去看,索性就在从新下载,编译一下,其实这些东西官网上面都有。http:sou ... [详细]
  • 安卓及谷歌官网不容易上,在此整理好下载地址,这样就可以直接用迅雷下载了。Eclipse最新Mars版Eclipse(暂时还没被墙)Mac版:http:www.eclipse.org ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 【Windows】实现微信双开或多开的方法及步骤详解
    本文介绍了在Windows系统下实现微信双开或多开的方法,通过安装微信电脑版、复制微信程序启动路径、修改文本文件为bat文件等步骤,实现同时登录两个或多个微信的效果。相比于使用虚拟机的方法,本方法更简单易行,适用于任何电脑,并且不会消耗过多系统资源。详细步骤和原理解释请参考本文内容。 ... [详细]
  • 20211101CleverTap参与度和分析工具功能平台学习/实践
    1.应用场景主要用于学习CleverTap的使用,该平台主要用于客户保留与参与平台.为客户提供价值.这里接触到的原因,是目前公司用到该平台的服务~2.学习操作 ... [详细]
  • PL2303HXD电路图(USB转UART)介绍及应用
    本文介绍了PL2303HXD电路图(USB转UART)的特性和应用,该电路图可以实现RS232和USB信号的转换,方便嵌入到手持设备中。PL2303HXD作为USB/RS232双向转换器,可以将USB数据转换为RS232信息流格式发送给外设,并将RS232外设的数据转换为USB数据格式传送回主机。通过利用USB块传输模式和自动流量控制,PL2303HXD能够实现更高的数据传输吞吐量比传统的UART端口。 ... [详细]
  • macOS命令行创建Android模拟器
    macOS下不安装AndroidStudio使用VSCode来开发Flutter应用使用命令行创建和管理Android模拟器设备avdmanageravdmanager 是一种命令 ... [详细]
author-avatar
May蕊心
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有