我正在尝试使用SCSS来模拟一个白色透明颜色覆盖在另一种实心颜色上的效果。我可以很容易地在覆盖层
上使用background-color: rgba(255, 255, 255, .5),但我更希望有一种不需要浏览器支持rgba颜色的解决方案。此外,由于我正在使用SCSS变量,我不一定知道底部颜色是什么,所以我需要计算结果。
看起来 SCSS颜色函数之一应该能够实现这种效果,但我尝试了几种方法,似乎无法使其正常工作。
有人知道如何做到这一点吗?
这里有一个演示以更好地说明我想要做的事情,或者您可以查看下面粘贴的代码。 http://jsfiddle.net/BRKR3/ HTML
看起来 SCSS颜色函数之一应该能够实现这种效果,但我尝试了几种方法,似乎无法使其正常工作。
有人知道如何做到这一点吗?
这里有一个演示以更好地说明我想要做的事情,或者您可以查看下面粘贴的代码。 http://jsfiddle.net/BRKR3/ HTML
<div class="background">
<div class="overlay rgba"></div>
</div>
<div class="background">
<div class="overlay scss"></div>
</div>
SCSS
$background: #009966;
.background {
background-color:$background;
height:60px;
margin:20px;
padding:20px;
width:60px;
}
.overlay {
height:60px;
width:60px;
}
.rgba {
background-color:rgba(255,255,255,0.5);
}
/* works if $background is $808080, but not if it's a color */
.scss {
background-color:scale-color($background, $lightness:150%);
}
更新
这里是一个使用Chuck的答案并且工作正常的jsFiddle: http://jsfiddle.net/BRKR3/3/
$color + (white - $color) / 2
,但我很高兴找到了一个能够完成相同任务的函数。 - Philip Walton