在LessCSS中,如何将true赋值给变量?

在LessCSS中,如何将true赋值给变量?,less,Less,我是Less新手,我正在尝试实现简单的混合,但这会引发编译错误: @show-image: true; .testimg() when not (@show-image) { display: none; } img.test { .testimg; } 编译器似乎不喜欢我的@show image:true赋值。我尝试分配数字1,但结果是 img.test { display: none; } 这是有意义的,因为根据关键字true以外的任何值,true都是fals

我是Less新手,我正在尝试实现简单的混合,但这会引发编译错误:

@show-image: true;

.testimg() when not (@show-image) {
    display: none;
}

img.test {
    .testimg;
}
编译器似乎不喜欢我的@show image:true赋值。我尝试分配数字1,但结果是

img.test {
    display: none;
}
这是有意义的,因为根据关键字true以外的任何值,true都是falsy


但是,我可以将关键字true指定给@show image变量吗,还是它只适用于带参数的变量?

看起来您使用得不太正确。您需要将@show image传递给函数.testimg,因此结果应该如下所示:

@show-image: true;

.testimg (@show) when not (@show) {
    display: none;
}

img.test {
    .testimg(@show-image);
}

我尝试使用测试,它只是在mixin定义的右括号中不断给出一个解析错误。看起来是时候在那里发布错误报告了。

看起来您的使用不太正确。您需要将@show image传递给函数.testimg,因此结果应该如下所示:

@show-image: true;

.testimg (@show) when not (@show) {
    display: none;
}

img.test {
    .testimg(@show-image);
}
我尝试使用测试,它只是在mixin定义的右括号中不断给出一个解析错误。看来是时候发布错误报告了。

明白了

失败的不是分配。似乎您只需要为每个可能的条件定义一个mixin,默认条件为

所以在我的情况下,我只需要这样做:

@show-image: true;

.testimg() when not (@show-image) {
    display: none;
}

.testimg() when (@show-image) {}

img.test {
    .testimg;
}
这让我有两件事要指出。第一个是关于编译器消息的,它们应该更具描述性;第二个是关于语言本身的,我认为它仍然太愚蠢,无法自行定义默认情况

别误会我的意思,我认为少一点是好的,它非常适合我目前的需要,我只是说它还很年轻,让你重新考虑在重大项目中使用它。

明白了

失败的不是分配。似乎您只需要为每个可能的条件定义一个mixin,默认条件为

所以在我的情况下,我只需要这样做:

@show-image: true;

.testimg() when not (@show-image) {
    display: none;
}

.testimg() when (@show-image) {}

img.test {
    .testimg;
}
这让我有两件事要指出。第一个是关于编译器消息的,它们应该更具描述性;第二个是关于语言本身的,我认为它仍然太愚蠢,无法自行定义默认情况


别误会我的意思,我认为少一点是好的,它非常适合我目前的需要,我只是说它还很年轻,让你重新考虑在重大项目中使用它。

卢乔,我同意你的看法。。。它还很年轻,编译器应该更具描述性,但并不是必须定义所有可能的条件,尽管在真/假变量的情况下,一开始似乎是这样的。。。只需添加一个默认情况,如switch语句:

@show-image: false;

.testimg() when not (@show-image){
    display: none;
}

.testimg(){
    display: inherit;
}

img.test {
    .testimg;
}

卢乔,我同意你的看法。。。它还很年轻,编译器应该更具描述性,但并不是必须定义所有可能的条件,尽管在真/假变量的情况下,一开始似乎是这样的。。。只需添加一个默认情况,如switch语句:

@show-image: false;

.testimg() when not (@show-image){
    display: none;
}

.testimg(){
    display: inherit;
}

img.test {
    .testimg;
}

嘿,谢谢你的快速回答。我没有错误地使用mixin,您可以将参数传递给它们,也可以不传递。按照您的方法,我的编译器抱怨这行@show image:true;,如果您将其更改为,例如,@show image:1;它编译得很好,但结果并不像预期的那样,因为@show将不是真的。这是我的观点。这不是关于mixin,而是关于将关键字true分配给@variable。@Luchomalina我不确定这是否重要,但是您是否尝试过直接将true传递给mixin而不是使用变量来表示true?我刚刚找到了答案,请查看我自己的答案。嘿,谢谢您的快速回答。我没有错误地使用mixin,您可以将参数传递给它们,也可以不传递。按照您的方法,我的编译器抱怨这行@show image:true;,如果您将其更改为,例如,@show image:1;它编译得很好,但结果并不像预期的那样,因为@show将不是真的。这是我的观点。这不是关于mixin,而是关于将关键字true分配给@variable。@Luchomalina我不确定这是否重要,但您是否尝试过直接将true传递给mixin而不是使用变量来表示true?我刚刚找到了答案,请查看我自己的答案。