优先用HEX表示固定色值,HSL适合动态调色与主题,RGBA用于透明及JS交互,现代项目可试点lch()提升色彩精度。
选颜色写法,核心看要不要调色、是否需要透明、团队协作是否统一。hex 最简洁适合固定色值,rgb/hsl 更适合动态调整或带透明度的场景。
品牌主色、按钮边框、字体颜色这类几乎不变化的值,用 #333、#FF6B35 这类 3 位或 6 位十六进制最直接。它体积小、可读性高、兼容性好,所有浏览器都支持,也方便设计师给值(设计稿里通常就是 hex)。
HSL(色相、饱和度、明度)符合人眼直觉。比如想让一个蓝色按钮变浅一点,把 hsl(210, 70%, 50%) 改成 hsl(210, 70%, 85%) 就行;换主题色只需调 h 值,不用反复试 rgb 数字。
hsl(calc(var(--base-h) + 30), 80%, 60%)
rgba 是目前最通用的透明方案(比 opacity 更精准,不影响子元素)。而且 JavaScript 获取或计算颜色时,rgb 格式天然友好——getComputedStyle 返回的就是 rgb(),用 parseInt 拆解 R/G/B 值也比解析 hex 简单。
background-color: rgba(0, 0, 0, 0.6);
linear-gradient(to right, rgba(25
5,0,0,1), rgba(255,0,0,0))
rgb(${r}, ${g}, ${b}) 拼接比 hex 计算更稳妥CSS Color Level 4 新增了 color(display-p3 ...) 和 lch(),后者基于人眼感知均匀的色彩空间,调色更准确(比如等量改变 L 值,明度变化看起来更一致)。不过目前 Safari 支持最好,Chrome/Firefox 需开启 flag 或等待稳定支持。