颜色转换教程

设计稿给的 CMYK 直接填进网页会明显偏色。讲清四种色值的适用场景、#1677ff 这类品牌色的实际换算结果、HEX 简写规则,以及屏幕色与印刷色的物理差异。

把 CMYK 填进网页,颜色当场就偏

设计师发来一份印刷稿,色彩标注写的是 C91 M53 Y0 K0,前端照着填进 CSS 里,页面上的蓝明显发灰。这就是没弄清两套色值的物理基础:屏幕是加色(RGB 三色叠加),印刷是减色(油墨互相吸收),同样的数字在两套体系里不是同一个颜色。工具在 颜色转换器,可以互相看数值。

四种写法,四种用途

  • HEX:前端最常用,#1677ff 这种六位写法直接进 CSS
  • RGB:需要按通道调色或做透明度计算时用
  • HSL:调明暗最顺手,改 L 值就行,不用猜三个通道
  • CMYK:只给印刷用,网页里填 CMYK 数值等于没填

#1677ff 到底是多少

实测换算:#1677ff 等于 rgb(22, 119, 255),HSL 是 hsl(215, 100%, 54%);常见品牌蓝 #1a73e8 等于 rgb(26, 115, 232),HSL 是 hsl(214, 82%, 51%)。CMYK 按公式换算是 C91 M53 Y0 K0,但印刷出来跟屏幕仍有偏差,具体偏多少取决于纸张、油墨和印刷机,我没法给统一数值。

HEX 简写有一条硬规则

#ffffff 可以简写成 #fff,前提是每两位相同。 #1677ff 首位是 1 和 6,不相等,简写会变成另一个颜色,浏览器直接忽略。测试时拿 #000、#fff、#f00 试一次就明白:能简写的都能整除成三位。

调明暗用 HSL,别在 HEX 上硬改

想把一个蓝调深一点,直接在 HEX 上减数值,色相会跟着漂。换到 HSL 只改 L(亮度),色相 H 和饱和度 S 不动,出来的才是同一色系的深浅。这条经验在配色时省很多来回。

常见问题

为什么转换后颜色变了
多数是色彩空间不同,屏幕 RGB 与印刷 CMYK 存在固有差异。
HEX 支持透明度吗
标准的六位不支持,八位写法(#RRGGBBAA)部分浏览器支持,跨端最好用 rgba。
HSL 能直接写进 CSS 吗
能,hsl(215, 100%, 54%) 浏览器识别良好。
同一个色值在不同显示器上不一样
正常,屏幕色域和校准状态不同,做印刷务必用色卡核对。

相关阅读

配色方案看 配色生成;渐变用色看 CSS 渐变;图片压缩保色参考 图片压缩。

去使用 颜色转换工具