我知道在vanilla CSS中,没有办法创建"添加"属性.我的意思是:
.shade {
background: rgba(0,0,0,.1);
}
<div class="shade">I have .1 black background</div>
<div class="shade shade shade">I also have .1 black background, but wouldn't it be cool if i had .3?</div>
Run Code Online (Sandbox Code Playgroud)
我希望做的是避免在循环中生成样式,以便增加背景阴影的不透明度,而不必为每一个指定一个类,因为我不知道有多少.
我怀疑这是不可能的,因为它有点挫败了"CSS"中"C"的目的,这很好 - 但是我觉得如果有人比我更聪明,我会问.
我宁愿不这样做:
<div class="shade">
<div class="shade">
<div class="shade">
No please
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
您可以使用 JQuery工作示例来做到这一点
$("div").each(function(index){
var classList = $(this).attr('class').split(/\s+/);
var num = 0;
$.each( classList, function(index, item){
if (item === 'shade') {
num = num + 0.1;
}
})
$(this).css("background", "rgba(0,0,0," + num + ")");
});
Run Code Online (Sandbox Code Playgroud)
HTML:
<div class="shade">I have .1 black background</div>
<div class="shade shade other shade">I also have .1 black background, but wouldn't it be cool if i had .3?</div>
<div class="shade shade shade shade shade">0.5 opacity</div>
Run Code Online (Sandbox Code Playgroud)