Jer*_*man 7 css ruby ruby-on-rails less
我正在尝试在CSS预处理器LESS中编写一个块,它将执行以下操作:
@transparent_background(@color; @alpha: .8)
{
background: @color;
background: rgba(<color R value>, <color G value>, <color B value>, @alpha);
}
Run Code Online (Sandbox Code Playgroud)
如果它是标准的十六进制定义(即#rrggbb),有没有办法从@color中获取RGB值?如果以某种其他方式定义@color,有没有办法做到这一点?
编辑:解决方案
@transparent_background(@color; @alpha: .8)
{
background: @color;
background: @color + rgba(0, 0, 0, @alpha);
}
Run Code Online (Sandbox Code Playgroud)
所有解决方案都不再有效,但这个解决方案有效(感谢@Elyse):
.alpha(@color, @alpha: 0.8) {
color: @color;
color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha);
}
Run Code Online (Sandbox Code Playgroud)
该hsla()功能虽然没有在 LESS 网站上公布,但在源代码中进行了定义。