gpt4 book ai didi

c# - DotLess LessCss 编译器与 WebEssentials LessCss 编译器不同

转载 作者:行者123 更新时间:2023-11-28 12:39:56 26 4
gpt4 key购买 nike

我正在使用 dotless 在运行时解析 LessCss。这基本上是成功的,但我遇到了一种情况,它没有按预期工作。

给定以下 LessCss:

@tileWidth: 50px;
@tileMarginX: 5px;
@gridWidth: 2;

// recursive less to generate all x positions down to 1
.position-x(@maxIndex) when (@maxIndex > 0) {
[data-col="@{maxIndex}"] {
left: ((@maxIndex - 1) * @tileWidth) + (@tileMarginX * ((@maxIndex * 2) - 1));
}

.position-x(@maxIndex - 1);
}

.position-x(@gridWidth);

WebEssentials 2013 Update 3 将编译为:

[data-col="2"] {
left: 65px;
}
[data-col="1"] {
left: 5px;
}

LessEngine.TransformToCss 将输出:

[data-col="@{maxIndex}"] {
left: 65px
}
[data-col="@{maxIndex}"] {
left: 5px
}

DotLess 不支持这种语法吗?
如何更改 Less 代码以获得预期的输出?

最佳答案

根据 https://github.com/dotless/dotless/issues/395 dotless 只是不支持属性选择器中的插值,因此您只需“隐藏”变量中的属性,例如:

@tileWidth: 50px;
@tileMarginX: 5px;
@gridWidth: 2;

.position-x(@n) when (@n > 0) {
@attr: ~'[data-col="@{n}"]';
@{attr} {
left: (@n - 1) * @tileWidth + (2 * @n - 1) * @tileMarginX;
}

.position-x(@n - 1);
}

.position-x(@gridWidth);

关于c# - DotLess LessCss 编译器与 WebEssentials LessCss 编译器不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26615585/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com