【发布时间】:2019-05-15 12:37:04
【问题描述】:
我有一个 LESS 循环,它生成不同的 CSS(增量)类,从列表中提取颜色值。
我目前的 LESS 代码如下:
.generate-detached(#f00, #0f0, #00f);
.generate-detached(@colors...)
{
.generate-detached-loop(1, @colors);
}
.generate-detached-loop(@i; @colors) when (@i <= length(@colors)) {
@color: extract(@colors, @i);
.detached-@{i}
{
box-shadow: inset 0px 0px 8px 2px @color;
> .toolbar > .drag-controls_container > .drag-control:before
{
box-shadow: inset 0px 0px 5px 1px @color;
}
}
.generate-detached-loop((@i + 1), @colors);
}
生成的 CSS 代码为:
.detached-1 {
box-shadow: inset 0px 0px 8px 2px #f00;
}
.detached-1 > .toolbar > .drag-controls_container > .drag-control:before {
box-shadow: inset 0px 0px 5px 1px #f00;
}
.detached-2 {
box-shadow: inset 0px 0px 8px 2px #0f0;
}
.detached-2 > .toolbar > .drag-controls_container > .drag-control:before {
box-shadow: inset 0px 0px 5px 1px #0f0;
}
.detached-3 {
box-shadow: inset 0px 0px 8px 2px #00f;
}
.detached-3 > .toolbar > .drag-controls_container > .drag-control:before {
box-shadow: inset 0px 0px 5px 1px #00f;
}
也许我正在使用旧的 LESS 结构并且实际上存在一些新技术或一般来说......您有什么想法来改进解决方案吗?
【问题讨论】:
-
您要解决什么问题?你只是问这是否是一个好的解决方案?
-
我知道它运行正确,但它非常冗长且有点难以理解。我认为在 LESS 的最新版本中可能会有一些新功能,可以让代码更紧凑或更直观地实现相同的结果(例如新的
if()语句而不是旧的when()守卫)跨度> -
一个例子可能是新的 if() 语句而不是旧的 when() 守卫 - 如果您的意思是 Less v3 中的
if函数不能替代 @987654326 @守卫。
标签: less less-mixins