把 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%) 浏览器识别良好。
- 同一个色值在不同显示器上不一样
- 正常,屏幕色域和校准状态不同,做印刷务必用色卡核对。