我需要我的对象根据某个值具有不同的背景颜色。特别是,它是一个百分比条,理论上有 100 种不同的背景颜色(当它为空时忽略不存在的颜色)。自然,条的宽度从 1% 到 100% 不等。我想知道,我怎样才能自动制作所有不同的色调?
我的基本想法是:如果我有一个 100 像素宽的图像,每个像素都有不同的颜色,我会尝试将背景宽度限制为 1 个像素,使用正确的偏移量,然后重复它。那样的话,它是一个单一的 CSS 属性,即偏移量,需要通过 JavaScript 进行更改,并且不需要在 100 个不同的类之间切换。遗憾的是,背景大小、背景位置和背景重复不是这样工作的。所以我的问题是:我有什么可能使它变得简单并且依赖于不超过 3 个线性依赖于百分比的数字 CSS 属性?
提前致谢。
编辑:我有一个想法,我尝试过,它有效。
我在 Photoshop 中创建了一个正好 100 像素高和 1 像素宽的图像。每个像素代表其百分比的颜色。因此,像素 0 表示 1%,像素 99 表示 100%。然后,我将该图像垂直拉伸至少进度条的高度。如果它是 20px 高,我将图像至少拉伸 20 倍。拉伸需要使用最近邻算法来完成,以防止在不应该有梯度的地方出现梯度;每个像素只需要垂直拉伸 20 倍,因此每 20 个像素就会出现锐边。
我将生成的图像用作仅水平重复的背景图像。使用图像位置,我设置了 background-position: 0 -[(percentage-1)*20]px 和 width: [percentage]%。(方括号中的部分是使用 PHP 或 JavaScript 或其他方式计算的)。差不多就是这样。每当百分比变化时,我只需要更改这两个值,背景就会自动适应,不管它的颜色如何。