首页
开发技巧正文内容

CSS 新特性 color() 已被所有主要引擎支持

2024年08月24日
阅读时长 2 分钟
阅读量 7
CSS 新特性 color() 已被所有主要引擎支持

背景

六月份,Google 发布了一篇新博客:关于 color() 已被所有主流引擎支持。

以下示例展示了支持的颜色空间

.valid-css-color-function-colors {
  --srgb: color(srgb 1 1 1);
  --srgb-linear: color(srgb-linear 100% 100% 100% / 50%);
  --display-p3: color(display-p3 1 1 1);
  --rec2020: color(rec2020 0 0 0);
  --a98-rgb: color(a98-rgb 1 1 1 / 25%);
  --prophoto: color(prophoto-rgb 0% 0% 0%);
  --xyz: color(xyz 1 1 1);
}

color() 介绍

color() MDN 链接

color() 是 CSS 中一个相对较新的颜色函数,提供了一种统一的方式来在任何 RGB 颜色空间中指定颜色值。与 rgb() 等函数相比,函数的优势在于:hsl()color()

  1. 统一的语法可以访问不同的颜色空间,更加简洁 ✨。

  2. 如果将来有新的标准颜色色域,只需向函数添加一个新值即可兼容,无需添加新函数 🔄 。

  3. 对于颜色管理很有帮助,浏览器根据设备颜色色域执行颜色转换 🖥 ️🎨 。

color() 语法

color() 函数的语法如下:

color(display-p3 1 0.5 0);
color(display-p3 1 0.5 0 / .5);

color() 的值如下

  • 颜色空间命名空间 🎨

  • 例如:srgb, srgb-linear, display-p3, a98-rgb, prophoto-rgb, rec2020, xyz, xyz-d50 和 xyz-d65. 🌐

  • p1, p2, p3 🎚 ️

  • 用于使用的颜色空间的数字或百分比参数值 ⚙️ 一个可选的 alpha 值 🔍

其中 color-space 可以是:

  • srgb:标准 RGB 颜色色域 🌈

  • display-p3:广色域,用于电影和电视 📺

  • a98-rgb:Adobe RGB 颜色色域 🖌 ️

  • prophoto-rgb:ProPhoto RGB 颜色色域 📸

  • rec2020:UHDTV 和其他广色域格式,例如:

  • color(srgb 0 0 1) // sRGB 颜色值 0, 0, 1 🔵

  • color(display-p3 0 0 1) // 显示 P3 蓝色在色域内 🔷

color() 使用示例

color() 函数可以在 CSS 中任何需要颜色值的地方使用。以下是一些示例:文本颜色:

.text {
  color: color(display-p3 0 0 1);
}

背景颜色:

.bg {
  background-color: color(prophoto-rgb 0 1 0);
}

渐变颜色:

.gradient {
  background: linear-gradient(
    to right,
    color(display-p3 0 0 1),
    color(rec2020 0 1 0)
  );
}

填充 SVG 图形:

.icon {
  fill: color(a98-rgb 1 0 0);
}

哪些网站或应用需要使用 color()

color() 函数主要适用于以下类型的网站和应用:

  1. 需要广色域和高清晰度颜色的网站:🎥 视频网站,🖼 ️ 产品展示网站,🌟 高清晰度显示网站等。

  2. 需要颜色管理的网站:🎨 颜色管理网站和需要跨设备颜色一致性的网站。

  3. 创意和艺术性网站:✨ 设计师可以更有创意地结合其他 CSS 技术,创造出美丽的视觉效果。🎨

  4. 未来 HDR 显示的网站:🌈 color() 为具有更广色域和 HDR 的网站做好准备。因此,总体而言,color() 为对颜色敏感且面向未来的网站带来了许多好处,并且是 CSS 中强大的颜色功能 💪 。

免责声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

相关文章

探索多种软件架构模式及其实用应用
2024年11月22日19:06
本文深入探讨了多种软件架构模式,包括有界上下文、边车模式、发布-订阅模式、应用网关、微服务、命令职责分离(CQRS)等,介绍了它们的优点、使用场景以及具体应用实例。文章强调根据具体项目需求和团队能力选择最合适的架构,以构建高效和可维护的解决方案,同时展示了各架构模式间的综合应用,提供了丰富的案例和技术细节。
15个高级Python快捷键助您更快编程
2024年11月21日07:02
本文分享了 15 个高级的 Python 编程快捷键,包括上下文管理器、行内字典合并、函数参数解包、链式比较、dataclasses、海象运算符、反转列表、备忘录缓存、splitlines、enumerate、字典推导、zip 用于并行迭代、itertools.chain 扁平化列表、functools.partial 部分函数和 os.path 文件路径管理等,帮助开发者提高编程效率和代码简洁性。
揭示网页开发的 11 个迷思:停止相信这些误区
2024年11月19日22:05
网页开发充满误解,这篇博文针对11个常见迷思进行揭秘。包括网站开发后不需更新、需掌握所有技术、AI会取代开发者等。强调持续学习、专业化、用户体验的重要性,澄清误区如多任务处理的必要性和最新技术的必需性。文章提醒开发者注重实用而非追求完美代码,以务实态度面对开发工作。
你知道 CSS 的四种 Focus 样式吗?
2024年11月18日21:41
本文介绍了四种 CSS focus 样式::focus、:focus-visible、:focus-within 以及自定义的 :focus-visible-within,帮助提升网站用户体验。:focus 样式应用于被选中元素;:focus-visible 仅在键盘导航时显示;:focus-within 用于父元素;自定义 :focus-visible-within 结合两者效果。合理运用这些样式能使网站更方便键盘用户导航。
利用 Python 实现自动化图像裁剪:简单高效的工作流程
2024年11月11日20:49
使用 Python 和 OpenCV 自动裁剪图像,轻松实现 16:9 的完美构图。这个指南介绍了如何通过代码进行灰度化、模糊处理和边缘检测,最终识别出最重要的部分进行裁剪。特别适合需要批量处理图像的情况,节省大量时间。
每位资深前端开发人员都应了解的 TypeScript 高级概念
2024年11月11日02:07
资深前端开发者应了解 TypeScript 的高级概念,如联合类型、交叉类型、类型保护、条件类型、映射类型、模板字面量类型和递归类型。这些特性可提升代码的可维护性和可扩展性,确保在开发复杂应用时实现更高的类型安全性和效率。