我正在解析一个颜色字符串,以getComputedStyle
从中获取、、、R
和值。G
B
A
到目前为止(在 Chrome 和 Firefox 中),颜色值似乎总是以易于解析的格式rgb
返回:rgba
const [, r, g, b, a] = str.replace(/\s/g, "").match(/rgba?\((\d+(?:\.\d+)?),(\d+(?:\.\d+)?),(\d+(?:\.\d+)?)(?:,(\d+(?:\.\d+)?))?\)/i);
但是,我无法在其MDN 页面上列出的任何规范中找到关于颜色格式的任何承诺。getComputedStyle
是否有任何颜色格式的保证getComputedStyle
?还是完全取决于浏览器的实现?
我宁愿不必检查 HEX 和 HSLA 值(以及其他任何可能的值 - 我不完全确定)。
编辑:
用于在控制台中测试颜色值的快速代码片段:
console.log((str => {
const div = document.createElement("div");
div.style.backgroundColor = str;
document.body.append(div);
return getComputedStyle(div).backgroundColor;
})("magenta"));