Я использую dotless для анализа LessCss во время выполнения. Это в основном успешно, но у меня есть один сценарий, когда он не работает так, как предполагалось.Компилятор DotLess LessCss отличается от компилятора WebEssentials 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 для получения ожидаемого результата?
Предполагая, что 'dotless' просто не поддерживает интерполяции в селекторы атрибутов : что-то вроде [этого] (https://gist.github.com/seven-phases-max/6d1bc5483f43de3088b8#file-26615585 -less) должен сделать трюк, я думаю. –
также см .: https://github.com/dotless/dotless/issues/395 –
@ seven-phase-max Это идеальное решение. Я могу подтвердить, что он работает. Поместите свой комментарий в качестве ответа, чтобы я мог повышать и отмечать как правильные. –