Html 可以为元素着色';s的背景取决于它';序列中的索引?

Html 可以为元素着色';s的背景取决于它';序列中的索引?,html,css,selector,styling,Html,Css,Selector,Styling,我有一个div,div中有很多H3元素 对于每个H3元素(有任意数量),背景颜色要比之前的H3亮X倍 我被两件事困住了 1:我将如何单独使用CSS来实现这一点(可能会找到一种在jQuery中实现这一点的黑客方法)。 2:我如何增加/减少颜色(为了简单起见,假设第一个H3是黑色,其余的都是浅灰色)。不幸的是,在CSS中没有办法做这样的事情(你可能可以用第n种类型做一些事情),但是,只有当页面上唯一的元素位于同一父元素中,并且您提前知道将有多少个元素,或者至少知道最多有多少个元素时,这才有效) 但在

我有一个div,div中有很多H3元素

对于每个H3元素(有任意数量),背景颜色要比之前的H3亮X倍

我被两件事困住了

1:我将如何单独使用CSS来实现这一点(可能会找到一种在jQuery中实现这一点的黑客方法)。
2:我如何增加/减少颜色(为了简单起见,假设第一个H3是黑色,其余的都是浅灰色)。

不幸的是,在CSS中没有办法做这样的事情(你可能可以用
第n种类型做一些事情
),但是,只有当页面上唯一的
元素位于同一父元素中,并且您提前知道将有多少个元素,或者至少知道最多有多少个元素时,这才有效)

但在JavaScript中它实际上非常简单:

var h3s = document.getElementsByTagName('h3'), l = h3s.length, den = Math.max(l-1,1),
    darkest = [0,0,0], lightest = [255,255,255], // R,G,B - adjust as needed
    step = [
        (lightest[0]-darkest[0])/den,
        (lightest[1]-darkest[1])/den,
        (lightest[2]-darkest[2])/den
    ], i;
for( i=0; i<l; i++) {
    h3s[i].style.color = "rgb("
        +Math.round(darkest[0]+step[0]*i)+","
        +Math.round(darkest[1]+step[1]*i)+","
        +Math.round(darkest[2]+step[2]*i)
    +")";
}
var h3s=document.getElementsByTagName('h3'),l=h3s.length,den=Math.max(l-1,1),
最暗=[0,0,0],最亮=[255255],//R、G、B-根据需要进行调整
步骤=[
(最轻[0]-最暗[0])/den,
(最轻的[1]-最暗的[1])/den,
(最轻的[2]-最暗的[2])/den
],i;
对于(i=0;i