HSB与HSL不可直接互换,CSS仅支持HSL;二者H相同,但S、B/V与L定义不同:HSB中B=100%时趋近白色,HSL中L=50%最饱满;需按B值分段转换L和S以视觉还原。
HSB(也叫HSV)和HSL是两种不同的颜色模型,虽然都基于色相(H),但饱和度(S)和明度/亮度(B/V vs L)定义不同,不能直接替换。CSS只支持HSL(和RGB、HEX等),不支持HSB,所以需要将设计稿给的HSB值**转换为近似的HSL值**,才能在CSS中使用。
两者共享色相(H,0–360°),但:
这意味着同一组HSB值(如 H=200, S=80%, B=90%)直接套用到hsl(200, 80%, 90%)会明显偏浅、发灰——因为HSL在L很高时天然压制S的表现力。
没有绝对精确的数学映射,但按明度区间经验调整,能获得视觉上更接近的设计还原效果:
0%),S需显著降低(-15%~30%),否则会过粉/过亮;例如 HSB(120, 70%, 95%) → HSL(120, 40%, 80%) 更稳。以下是一组典型HSB值及其推荐的CSS可用HSL近似值(已实测对比主流设计工具预览):
hsl(0, 100%, 50%)(不是hsl(0,100%,100%)!后者是浅粉)hsl(180, 85%, 65%)
hsl(30, 80%, 75%)
hsl(240, 40%, 12%)
手动换算易出错,推荐两个轻量方式:
hsl()值,通常已做视觉优化,可直接参考;不复杂但容易忽略:最终以你在目标设备(尤其Mac和Windows屏幕)上看到的实际效果为准,而不是数值是否“理论正确”。