函数可以返回*只是*一个rgba值吗?

Lee*_*var 3 less

我将rgba值存储为变量(例如:) @black: rgba(0, 0, 0, 1.0);,我意识到如果我能使alpha值变量会很好.

所以,我试过这个..

.color_black (@alpha: 1.0) { rgba(0, 0, 0, @alpha) }
Run Code Online (Sandbox Code Playgroud)

问题很简单,这不起作用.参数部分似乎是正确的,事实上,一旦你添加了rgba()代码它似乎只是"破坏".不太喜欢rgba电话.

现在我可以通过定义属性标记来完成这项工作,例如..

.color_black (@alpha: 1.0) { color: rgba(0, 0, 0, @alpha) }
Run Code Online (Sandbox Code Playgroud)

但是这种方式会破坏存储单一颜色的有用性,并在城镇中重复使用它.在背景,文本,渐变等

那么,关于如何解决这个问题的任何想法?

编辑:虽然我对此不满意......这是我能想到的最好的解决方案..

.color_black (@prop: color, @alpha: 1.0) { @prop: rgba(0, 0, 0, @alpha) }
Run Code Online (Sandbox Code Playgroud)

它不像函数那么有用,因为你不能在其他属性(渐变等)中使用它.思考?

Cla*_*tin 8

看一下less的颜色函数:http://lesscss.org/#-color-functions

我认为'淡化'是你正在寻找的.只需将颜色设置为变量......

@black: #000000;
Run Code Online (Sandbox Code Playgroud)

......并使用fade():

color: fade(@black, 80%);
Run Code Online (Sandbox Code Playgroud)