LESS CSS预处理器:有没有办法将单一颜色映射到rgb和rgba定义?

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)

Ali*_*xel 2

所有解决方案都不再有效,但这个解决方案有效(感谢@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 网站上公布,但在源代码中进行了定义。