极简工具箱

免费在线工具 · 本地计算 · 无需上传

CSS 颜色格式怎么选:HEX、RGB、HSL 与透明度

设计稿给的是 `#2563EB`,代码里想调成「亮一点」却只能盲试。换成 HSL 就能直接改亮度——颜色格式的选择,影响的是后续维护成本。

广告位(百度联盟)

一、四种常见写法

.box {
  color: #2563eb;              /* HEX,设计师最常用 */
  color: #2563ebcc;            /* 8 位 HEX,最后两位是 alpha */
  color: rgb(37 99 235);       /* 现代写法,空格分隔 */
  color: rgb(37 99 235 / 80%); /* 带透明度 */
  color: hsl(217 91% 60%);     /* 色相 饱和度 亮度 */
  color: hsla(217, 91%, 60%, .8);
}

rgba() 与 rgb() 现在等价(都支持第四个参数),hsla() 同理,老写法仍兼容。

二、HEX 的简写与透明度

注意 alpha 是「不透明度」,00 完全透明,ff 完全不透明。这一点和某些设计工具里的「透明度百分比」方向一致,但和 opacity 属性不同——opacity 会影响整个元素(包括子元素),alpha 只影响该颜色。

三、HSL 更好调

HSL 把颜色拆成三个直觉维度:

于是「把这个蓝调亮 10%」就是 hsl(217 91% 70%),而用 HEX 只能靠工具换算。做主题色阶梯(hover 亮一点、active 暗一点)时,用 HSL 或 color-mix() 效率高得多:

:root { --brand: hsl(217 91% 60%); }
.btn:hover { background: hsl(217 91% 68%); }
.btn:active { background: hsl(217 91% 52%); }

四、currentColor 与变量

.link { color: #2563eb; border-bottom: 1px solid currentColor; }

currentColor 取当前元素的 color 值,做图标、下划线、边框时不用重复写色值,改主题只改一处。

配合 CSS 变量能做出完整色板:

:root {
  --brand-500: #3b82f6;
  --brand-600: #2563eb;
  --text: #111827;
}

五、对比度:颜色不只是好看

文字与背景的对比度不足,是常见的可访问性问题,也影响阅读体验。WCAG 建议:

文本类型最低对比度
正文(小于 18pt)4.5:1
大号文本(≥18pt 或 14pt 加粗)3:1
图标、边框等非文本3:1

浅灰字(#9ca3af)配白底大约只有 2.5:1,做正文不合格,只能用于辅助说明。设计时按这个标准自查,比上线后被用户吐槽好。

六、几个细节

七、换算工具

设计稿给 HEX、代码里想用 HSL,或者要从截图取色,用 颜色转换工具 在 HEX / RGB / HSL 之间互转,并直接看到色块预览。

小结

HEX 适合精确指定,HSL 适合调明暗,8 位 HEX 末两位是 alpha;currentColor 减少重复;正文对比度至少 4.5:1。选格式的标准是「以后谁改、怎么改」。

本文相关工具(本地计算,无需上传)

更多使用教程