Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Less 变量mixin名称是否不太可能?_Less_Less Mixins - Fatal编程技术网

Less 变量mixin名称是否不太可能?

Less 变量mixin名称是否不太可能?,less,less-mixins,Less,Less Mixins,我想做的是创建一个mixin,它接受参数并使用一个或多个参数作为要包含的其他mixin的名称 由于我不确定正确的术语,我将尝试通过示例进行解释: @gradients{ light:#fafafa; //Should these also be prefixed with @? dark:#888888; } @gradientBackground(@name,@height){ background-image:url('../img/gradients/{@name}

我想做的是创建一个mixin,它接受参数并使用一个或多个参数作为要包含的其他mixin的名称

由于我不确定正确的术语,我将尝试通过示例进行解释:

@gradients{
    light:#fafafa; //Should these also be prefixed with @?
    dark:#888888;
}
@gradientBackground(@name,@height){
    background-image:url('../img/gradients/{@name}-{@height}.png'); //this works
    background-color:@gradients[@name];
}

.someBox{
    @gradientBackground(light;150);
}

//Expected result:
.someBox{
    background-image:url('../img/gradients/light-150.png'); //This works
    background-color:#fafafa; //This doesn't work.
}

该图像可以正常工作,但我还没有弄清楚如何从
@渐变中引用适当的颜色。这可能吗?

我认为您根本不需要@gradients变量。只需定义变量:

@light:#fafafa;
@dark:#888888;
mixin不应以@开头,它定义了一个变量。mixin基本上只是一个类

.gradientBackground(@name:@dark, @height:500){
    background-image:url('../img/gradients/{@name}-{@height}.png');
    background-color:@name;
}
作为一个例子,我将mixin的属性设置为@dark color,高度设置为500

然后,当您想在另一个定义中使用mixin时,它将是这样的:

.somebox {
    .gradientBackground(@light, 150);
}
因此,当您使用mixin时,您可以保留默认值或传递新值(即:@light&150)


希望有帮助

你不能用@dark_gradient和@light_gradient来代替吗?我可以,但最后还是用了,但我在寻找一个更优雅的解决方案。我可以将它与php或任何其他语言中的数组进行比较。如果要存储很多颜色,您是希望有一个可以作为一个组轻松访问且代码清晰的单个数组,还是每个颜色都有一个不同的变量?:)这就是我最终决定做的。我问,因为lesshp文档()有点不清楚,当时没有更好的例子。所以这更像是一个“我能做到这一点”类型的问题:)我的主要目标是通过在自己的mixin组中加入颜色和主题相关变量,使代码更干净,这样就可以用普通名称访问它们,但我想这毕竟是不可能的。