Less 小于CSS边框半径的混合不是0
我想在我的边界半径mixin上添加一个保护,如果边界半径为0,它不会给出任何输出。在我使用多个参数之前,我的LESS代码工作得很好Less 小于CSS边框半径的混合不是0,less,Less,我想在我的边界半径mixin上添加一个保护,如果边界半径为0,它不会给出任何输出。在我使用多个参数之前,我的LESS代码工作得很好 .border-radius (@radius) when (@radius > 0) { border-radius: @radius; } .dosnt-work { .border-radius (5px 10px 5px 10px); } .works-correctly { .border-radius (5px); } .work
.border-radius (@radius) when (@radius > 0) {
border-radius: @radius;
}
.dosnt-work {
.border-radius (5px 10px 5px 10px);
}
.works-correctly {
.border-radius (5px);
}
.works-correctly-too {
.border-radius (0px);
}
如果不创建4个不同的混合,这是可能的吗?因为您只接受一个参数,当您使用类似“5px 10px 5px 10px”的东西时,它将整个字符串与0进行比较,不能合理地认为字符串大于零。解决这个问题的唯一方法是为多个参数创建另一个mixin。您可以使用相同的名称,
.border radius
:只需使用多个参数重新定义它。根据参数的数量,要调用的训练将更少
然而,我认为这总的来说有点误导。为什么要忽略零的边界半径值?除此之外,如何替代以前的规则以禁用边界半径
.border-radius(@radius) when not(@radius = 0) {
border-radius: @radius;
}
但是请注意,这对(0)、(0)等参数不起作用 你为什么要这么做?如果要覆盖现有边界半径并将其设置为
0
,会发生什么情况?