Мне нужно установить переменную в МЕНЬШЕ на основании условий.Установить переменную в состоянии
@body-background-color: black;
@post-background-color: white;
@post-stacked-effect: true;
.content-padding() when (@body-background-color = @post-background-color) and not (@post-stacked-effect = true){
@content-padding: 0px;
}
.content-padding() when not (@body-background-color = @post-background-color), (@post-stacked-effect = true) {
@content-padding: 20px;
}
body {
.content-padding();
content: "@{post-stacked-effect}";
padding: @content-padding;
background-color: @body-background-color;
.post {
background-color: @post-background-color;
}
.some-math {
margin: [email protected] [email protected] @content-padding;
}
}
@ content-padding всегда 0px. Не могли бы вы помочь мне исправить это условие?
Когда я вставляю код в [less2css] (http://less2css.org/), я получаю 20px. Охранники, похоже, работают так, как ожидалось. Возможно, вам стоит уточнить, какие условия вы пытаетесь настроить. – freejosh
Я обнаружил, что он работает в версии JS, но не в php. Я использую компилятор PHP и имею эти проблемы. Это видно [здесь] (http://goo.gl/6k952) –
Похоже, вы нашли свою проблему. Вы используете компилятор, который не разработан так же, как базовый LESS. Из того, что я могу сказать, LESS позволяет mixin устанавливать переменную в блоке декларации, чтобы вернуться к версии 1.1. Тем не менее, похоже, компилятор PHP этого не допускает. Тем не менее, вы можете использовать интерфейс PHP для проверки на PHP и установить переменную в ней до того, как код LESS будет объединен с PHP. – ScottS