html颜色代码需在css的color、background-color等属性中直接使用#rrggbb或rgb(),三位简写#abc仅在语法正确时等价#aabbcc,错误格式会静默失效,hsl()更直观但ie9-不支持。
html 颜色代码不是“用法”问题,而是“在哪写、怎么写、写错会怎样”的实操问题。
color 属性里直接填 #RRGGBB 或 rgb() 就行
绝大多数场景下,你是在 CSS 里控制文字、边框、背景的颜色,比如:color、background-color、border-color。这些属性值直接接受颜色代码,不需额外声明或转换。
-
#ff6b6b是合法的十六进制写法,大小写不敏感,但建议小写(避免和变量名#FF混淆) -
rgb(255, 107, 107)和rgba(255, 107, 107, 0.8)更适合需要透明度或动态计算的场景 - 别在 HTML 的
style属性里写color: #ff6b6b;后面多加个分号——虽然浏览器通常容忍,但容易和后续属性粘连出错 - 别把
#fff当成万能白:它在深色模式下可能对比度不足,可读性差
Hex 颜色写错三位变六位时会静默失效
很多人以为 #abc 是简写,自动等价于 #aabbcc ——这没错,但前提是它**单独出现且语法正确**。一旦中间混入非法字符或空格,整个值会被浏览器忽略,且不报错。
- 错误示例:
color: #ab c;(空格)→ 整个声明失效,元素用默认黑色 - 错误示例:
color: #abg;(g不是 0–9 或 a–f)→ 同样静默丢弃 - 三位简写只支持
#rgb、#rgba(后者是 CSS4 新增,兼容性有限),不支持#rrggbb写成#rbg - 检查方法:打开 DevTools → 查看 Styles 面板 → 如果该 color 值被划掉或没高亮,大概率是格式错了
用 hsl() 调色比 Hex 更直观,但旧版 IE 不支持
如果你要频繁调整同一色系(比如按钮悬停变深一点),hsl(120, 100%, 50%) 比改 #00ff00 到 #00cc00 更可靠 —— 因为亮度(lightness)参数直觉可控。
-
hsl()第一个值是色相(0–360),第二个是饱和度(0%–100%),第三个是明度(0%–100%) - IE9 及更早版本完全不认
hsl()和rgba(),如果必须兼容,得写两遍:color: #ff6b6b; color: hsl(8, 100%, 70%); - 别用
hsl()表示纯黑/纯白:虽然hsl(0, 0%, 0%)等价于#000,但某些安卓 WebView 对 0% 饱和度解析不稳定
真正卡人的不是颜色代码本身,而是它嵌在 CSS 优先级、继承链、深色模式适配、可访问性对比度检测这些上下文里——写对了 #333,未必等于用户看得清。
立即学习“前端免费学习笔记(深入)”;










