可以在某些地方获取 HTML 或 X11 颜色名称 及其 RGB 等效项的列表。 例如我们可以发现“Aquamarine”是“#70DB93”。 想必浏览器知道这些映射。 有没有办法使用 javascript 询问浏览器并获取它支持的颜色名称列表(以及浏览器计划使用的 RGB)?
这些是 Javascript 的元(它们在 CSS 等中使用),因此我怀疑它们是否可以以这种形式进行查询。
以下是所有浏览器应该知道的列表:CSS颜色名称
从该页面:
The W3C HTML and CSS standards have listed only 16 valid color names:
aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive,
purple, red, silver, teal, white, and yellow.
编辑:既然你问了,我检查了这是否至少可以在 Safari 上实现。我能够做到这一点(我在几分钟内就把这些组合在一起,请耐心等待):
<html>
<head>
<title>Color Test</title>
<script type="text/javascript">
function $(id) { return document.getElementById(id); }
function do_chocolate() {
$("foo").style.color = "chocolate";
alert($("foo").style.color);
}
</script>
</head>
<body>
<div id="foo">
This should change when you click below
</div>
<a href="#" onclick="do_chocolate();">Click me</a>
</body>
当我单击时,Safari 会向我显示此警报:
rgb(210, 105, 30)
我对 Javascript 不太熟悉,无法探测该颜色,但看起来可以做到。 如果我对这个项目很着急,我只需将颜色串起来(就像 Safari 那样向我显示该警报)并抓取每个部分。 然而,由于这是 Javascript/DOM,我知道有一种方法可以进入那里并获取每个颜色组件,但我不知道它是什么。 至少我已经为你指明了道路,不是吗?
Firefox等浏览器支持的这些颜色名称不是HTML颜色名称,而是X11颜色名称。
维基百科有这些颜色的列表和示例,因此您可以确定浏览器是否支持它们。
我会做一些研究,看看 Firefox(作为示例)在什么时候添加此支持,看看您是否可以通过 js 查询它。
您可以从预定义的颜色列表开始,然后检查浏览器是否支持它们: