事实证明,less 内置了 hsla 函数(请参阅较少的颜色函数 http://lesscss.org/#-color-functions)。在一些帮助下,我们发现了以下内容:
@dkblue: #11374c;
.colorize_bg(@color: @white, @alpha: 1) {
background: hsla(hue(@color), saturation(@color), lightness(@color), @alpha);}
然后使用混合:
section {.colorize_bg(@dkblue,1);}
所以我们传入颜色变量@dkblue
和 less 的功能,如hue(@color)
take @dkblue
并提取其色调、饱和度和亮度值。然后我们可以传入我们在该 mixin 中定义的 alpha。
然后我可以以其他方式使用它,例如定义透明边框。通过增加background-clip: padding-box;
to .colorize_bg
我确保我的边框显示在背景框颜色之外(CSS3 不是很神奇吗?)然后我可以重新定义 mixin 以适用于边框颜色:
.colorize_border(@color: @white, @alpha: 1) {border-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha);}
然后给section
边框宽度、样式并通过 mixin 定义颜色:
section {border-width: 0 10px; border-style: solid; .colorize_border(@dkblue, .5);
你会得到神奇的、闪亮的透明边框,就像这样:https://i.stack.imgur.com/4jSKR.png https://i.stack.imgur.com/4jSKR.png