#mainbody :nth-child(1){
border-color: #FFCC00;
}
#mainbody :nth-child(2) {
border-color: #FFAA00;
}
#mainbody :nth-child(3) {
border-color: #FF8800;
}
#mainbody :nth-child(4) {
border-color: #FF6600;
}
Run Code Online (Sandbox Code Playgroud)
这很尴尬,特别是如果你再增加20个孩子.是否有可能使用这样的东西,喂养calc()位置并使用它rgb()?
还有另一种方法吗?(counter()?)
#mainbody h2 {
border-color: rgb(255, calc( 255 / ( childposition / 4 ) ) ,0);
}
Run Code Online (Sandbox Code Playgroud)
以下显示了承诺,但我认为不rgb()接受内部counter():
body {
counter-reset: headcolors 255;
}
h2:after {
counter-increment: headcolors -34;
content: "rgb(255," counter(headcolors) ",0);";
}
h2 {
counter-increment: headcolors -34;
color: rgb(255,counter(headcolors),0);
}
Run Code Online (Sandbox Code Playgroud)
由于您没有说过您想要仅 CSS 的解决方案,因此我建议您使用基于 SASS/LESS 的解决方案。
http://sassmeister.com/gist/925757ff999824ec0270
$baseColor: #FFCC00;
@for $i from 1 to 5 {
#mainbody :nth-child(#{$i}) {
border-color: adjust-color($baseColor, $green: ($i - 1) * 1);
}
$i: $i + 1;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码生成:
#mainbody :nth-child(1) {
border-color: #ffcc00;
}
#mainbody :nth-child(2) {
border-color: #ffcd00;
}
#mainbody :nth-child(3) {
border-color: #ffce00;
}
#mainbody :nth-child(4) {
border-color: #ffcf00;
}
Run Code Online (Sandbox Code Playgroud)