我想列出 css 中使用的所有颜色,但它们似乎以 16 进制格式存储。我认为这样的事情可能会起作用,但它并没有做我想要的,
for(x; x< 100; x++)
{
color = x.toString(16);
}
我想列出 css 中使用的所有颜色,但它们似乎以 16 进制格式存储。我认为这样的事情可能会起作用,但它并没有做我想要的,
for(x; x< 100; x++)
{
color = x.toString(16);
}
在 JavaScript 中,您可以在数字前使用“0x”将其设为十六进制,使用“0”将其设为八进制。使用这种方法,这应该是最好的代码。这可能会使您的 Web 浏览器崩溃,因为所有 CSS 中有 16,581,375 种可能的十六进制颜色。这比一兆字节(约 100 万)中的字节数或破解 17 个小写字母密码需要多少年还要多。
var colors = new Array();
for(col=0x0;col<=0xFFFFFF;col++) {
colors.push("#" + col);
}
CSS 3 中使用的颜色包括红色、绿色、蓝色各 8 位,以及一个我认为是 8 位的 alpha 通道(但被定义为十进制数,因此更难分辨)。可以将这些颜色表示为rgba或hsla。使用十六进制,您只能表示 100% 不透明的颜色。迭代一种颜色的八位很容易:
for (var i=0; i<256; i++) {
var redChan = i;
}
遍历所有颜色可能是通过将此循环嵌套四层深,但这对您想要迭代的确切方向做出了一些假设。这也将是一个相当冗长的操作。
// This is not intended to be the best solution, just to demonstrate the basic algorithm.
for (var r=0; r<256; r++) {
for (var g=0; g<256; g++) {
for (var b=0; b<256; b++) {
// Assume we have 8 bits of alpha to use.
for (var a=0; a<256; a++) {
console.log('rgba(' + [r,g,b,a/255].join(',') + ')');
}
}
}
}
CSS 中的颜色通常由它们的红色、绿色和蓝色值(0-255 之间的整数)来描述,有时是透明度的 alpha 值。
如果您对 alpha 值不感兴趣,可以在 CSS 中以#RRGGBB十六进制格式编写颜色。
如果我们忘记了我们正在使用红色、绿色和蓝色的分组,可以看出我们在000000
( 0
) 和FFFFFF
( 16777215
) 之间写了一个数字。因此,您可以将每种 RGB 颜色描述为该范围内的整数。
var i = 0, colour;
for (; i < 16777216; ++i) { // this is a BIG loop, will freeze/crash a browser!
colour = '#' + ('00000' + i.toString(16)).slice(-6); // pad to 6 digits
// #000000
// #000001
// ... #000100 ...
// #FFFFFE
// #FFFFFF
}
上面的代码循环所有16777216
颜色,所以我建议不要运行这样的循环,但你可以看到它如何将范围内的整数更改为唯一的十六进制颜色。