我想创建一个rgba
从少变颜色和结果分配给同一个变量,但我不能用下面的代码做到这一点。
@navbar-default-bg: rgba(red(@navbar-default-bg), green(@navbar-default-bg), blue(@navbar-default-bg), 0.9);
我想创建一个rgba
从少变颜色和结果分配给同一个变量,但我不能用下面的代码做到这一点。
@navbar-default-bg: rgba(red(@navbar-default-bg), green(@navbar-default-bg), blue(@navbar-default-bg), 0.9);
上面的代码将导致以下错误被扔在编译:
NameError:对@导航栏默认-BG递归定义变量
因为这样更不是递归定义变量不会减少工作延迟加载的变量。 这意味着,该变量(在同一范围内),最后的定义将被使用的一个。 在您的例子这将导致一个错误,因为变量不能引用自身(以获得其最初申报价值)。
引用减网站:
当定义两次变量,该变量的最后的定义被使用,从当前范围向上搜索。 这是类似的,其中一个定义中的最后一个属性是用来确定值的CSS本身。
创造一个最好的方式rgba
从给定的颜色值rgb
颜色是使用内置的fade
功能(如下图所示)。 不过需要注意的是,该值不能被分配回同一个变量。
@navbar-default-bg: rgb(255, 0, 0);
#sample{
color: fade(@navbar-default-bg, 90%);
}
编译时会产生以下CSS输出上面更少的代码:
#sample {
color: rgba(255, 0, 0, 0.9);
}
的,当然,像中提到你可以做一些这样的回答来排序的条件下达到复位的效果,但我个人的看法是,它是太多的复杂性和精力,可以很可能以不同的方式来实现的东西。
下面是这个问题的答案中提到的方法的样本实现调整,以适应这个问题。 ( 代码被添加下面只是在-情况下,链接变为无效。)
.init() {
.inc-impl(rgb(255, 0, 0), 0.1); // set initial value
}
.init();
.inc-impl(@new, @i) {
.redefine() {
@color: @new;
@alpha: @i;
}
}
.someSelector(@name) {
.redefine(); // this sets the value of counter for this call only
.inc-impl(rgba(red(@color), green(@color), blue(@color), @alpha), (@alpha + 0.1)); // this sets the value of counter for the next call
@className: ~"@{name}";
.@{className}
{
color: @color;
}
}
.someSelector("nameOfClass");
.someSelector("nameOfClass1");
.someSelector("nameOfClass2");