utility2026-07-253 分钟阅读
什么是颜色转换
在 Web 开发和设计中,颜色有多种表示格式。颜色转换就是在这些格式之间互相转换,以便在不同场景下使用正确的颜色代码。
常见颜色格式
HEX(十六进制)
用 6 位十六进制数字表示颜色,最常用于 CSS:
#FF5733 → 红色系列
#33FF57 → 绿色系列
#3357FF → 蓝色系列
#FF5733AA → 8位 HEX(后两位为透明度)
RGB(红绿蓝)
用三个 0-255 的数值分别表示红、绿、蓝通道:
rgb(255, 87, 51) → 不透明
rgba(255, 87, 51, 0.5) → 半透明
HSL(色相、饱和度、亮度)
更直观的颜色表示法,适合人类理解和调整:
hsl(14, 100%, 60%) → 色相14°,饱和度100%,亮度60%
hsla(14, 100%, 60%, 0.5) → 半透明
| 参数 | 范围 | 说明 | |------|------|------| | 色相(H) | 0-360 | 颜色在色轮上的角度(0=红,120=绿,240=蓝) | | 飽和度(S) | 0%-100% | 颜色的鲜艳程度 | | 亮度(L) | 0%-100% | 颜色的明暗程度 |
如何使用在线颜色转换器
使用 DevToolkit Pro 的 颜色转换器:
- 输入任意格式的颜色值(HEX / RGB / HSL)
- 工具自动识别格式并转换为其他所有格式
- 实时预览颜色效果
- 一键复制所需格式的代码
颜色格式转换公式
HEX → RGB
将 HEX 的每两位拆分为十进制:
#FF5733 → R=FF(255), G=57(87), B=33(51) → rgb(255, 87, 51)
RGB → HEX
将每个通道值转为两位十六进制:
rgb(255, 87, 51) → FF + 57 + 33 → #FF5733
RGB → HSL
H = 0° if max==min
H = 60 × (G-B)/(max-min) if R is max
H = 60 × (2 + (B-R)/(max-min)) if G is max
H = 60 × (4 + (R-G)/(max-min)) if B is max
L = (max + min) / 2
S = 0 if max==min, else (max-min) / (1 - |2L-1|)
前端开发中的颜色最佳实践
1. 优先使用 CSS 变量
:root {
--primary: #3B82F6;
--primary-light: #60A5FA;
--primary-dark: #2563EB;
}
.btn {
background-color: var(--primary);
}
2. 暗黑模式适配
使用 HSL 格式可以更方便地生成暗色变体:
:root {
--primary-hsl: 217 91% 60%; /* 亮色模式 */
}
.dark {
--primary-hsl: 217 91% 60%; /* 保持色相,调整亮度 */
}
.btn {
background-color: hsl(var(--primary-hsl));
}
3. 无障碍设计(Accessibility)
确保文字和背景的对比度符合 WCAG 标准:
- AA 级:普通文字对比度 ≥ 4.5:1
- AAA 级:普通文字对比度 ≥ 7:1
- 大文字(≥18px 或 ≥14px 粗体):对比度 ≥ 3:1
FAQ
HEX 和 RGB 有什么区别?
两者本质相同,只是表示方式不同。HEX 用十六进制(如 #FF0000),RGB 用十进制(如 rgb(255,0,0))。HEX 更简洁,RGB 更直观。选择取决于团队习惯和具体场景。
HSL 比 HEX 更好吗?
HSL 对人类更直观——你可以直接调整色相来换颜色、调整亮度来变亮/暗。HEX 更适合复制粘贴。两者各有优势,看场景选择。
8 位 HEX 中最后两位代表什么?
最后两位表示透明度(Alpha)。例如 #FF573380 中 80 约等于 50% 透明度。与 CSS 的 rgba() 等价。
本文由 DevToolkit Pro 提供。更多开发者工具请访问 首页。