【发布时间】:2018-11-12 14:37:11
【问题描述】:
我需要改变所有孩子的背景颜色,逐渐增加不透明度。孩子的数量是动态的,将被异步插入或删除。是否有任何解决方案可以使用 css 或更少实现相同的目标。
ul li {
list-style: none;
font-size: 16px;
text-align: center;
font-weight: bold;
margin: 3px 0;
}
ul li:nth-child(1){
background-color: rgba(0,0,255, 0.1);
}
ul li:nth-child(2){
background-color: rgba(0,0,255, 0.2);
}
ul li:nth-child(3){
background-color: rgba(0,0,255, 0.3);
}
ul li:nth-child(4){
background-color: rgba(0,0,255, 0.4);
}
ul li:nth-child(5){
background-color: rgba(0,0,255, 0.5);
}
<ul>
<li>A</li>
<li>B</li>
<li>C</li>
<li>D</li>
<li>E</li>
</ul>
【问题讨论】:
-
您的示例只能达到
:nth-child(5)和0.5的不透明度值。对于第十四个孩子……您希望该值是多少?您是否需要在 1-x 个项目上平均分配不透明度 0-1,或者究竟是什么?这是否需要是动态的,即当有 10 个项目时分为 0.1 步,但当有 20 个时分为 0.05 步……?严重未明确的问题。 -
这里的不透明度只是实际问题的一个例子。可以有 N 个列表项。如果我们不考虑不透明度,只想改变背景颜色,如 rgb(0,0,0), rgb(1,0,0), rgb(2,0,0)... 那么该怎么做它,而不像 nth-child(1) 那样写
-
当使用
dynamically这个词时,通常意味着你不能只用CSS来做。你需要javascript。