HTML5 <input type="color"> 默认返回带#号的7位十六进制RGB颜色值(如"#ff0000"),可直接用于CSS;不支持透明度、命名色或函数式颜色,旧版浏览器需降级处理。

HTML5 的 <input type="color"> 默认返回的是 7 位十六进制颜色值(如 #ff0000),无需额外转换,直接通过 JavaScript 获取即可。
基础用法:获取默认的 #RRGGBB 值
浏览器原生 color 输入框会以标准 7 字符十六进制格式(# + 六位大写/小写十六进制)返回颜色值。注意:它**总是带 # 号**,且为 RGB 格式(不支持透明度 alpha)。
- 在 HTML 中声明:
<input type="color" id="picker" value="#3498db"> - 用 JavaScript 读取:
document.getElementById('picker').value→ 返回类似"#3498db" - 该值可直接用于 CSS:
element.style.backgroundColor = picker.value;
确保兼容性与初始值设置
部分旧版浏览器(如 IE)不支持 type="color",会退化为普通文本框。建议设置合理的默认值,并做基础检测:
- 始终设置
value属性(如value="#000000"),避免某些浏览器返回空字符串 - 可通过
input.type === 'color'判断是否被原生支持,否则可降级为文本输入+颜色校验 - 移动端 Safari 和 Chrome Android 均已稳定支持,无需 polyfill
如需去除 # 号或转为大写等格式处理
虽然原生值已符合标准十六进制格式,但若业务需要纯六位(无 #)或统一大小写,可用简单字符串操作:
立即学习“前端免费学习笔记(深入)”;
- 去 # 号:
colorValue.slice(1)→"3498db" - 转大写:
colorValue.toUpperCase()→"#3498DB" - 验证是否合法(可选):
/^#[0-9A-Fa-f]{6}$/.test(colorValue)
注意:不支持 rgba、hsl 或带透明度的值
type="color" 仅提供不透明的 RGB 颜色,无法选择 alpha 通道。如果需要透明色,必须搭配单独的 range 输入控制 opacity,或改用第三方库(如 iro.js、spectrum)。
它也不会返回命名色(如 "red")或函数式颜色(如 "rgb(52, 152, 219)")——始终是 #RRGGBB 形式。



















