Less CSS — framework для css. Вопрос про строки?

Возможно, решение очевидно, но я его просто не вижу?


Тут описание языка: lesscss.ru/


Попрошу немного свежего взгляда на вопрос:

Как можно соединить две строки без пробела?


Пример из документации:

@var1: 1;

@var2: 2;

@var3: @var1 @var2;


В результате @var3 будет равен «1 2».

Всякие комбинации из скобок, кавычек и функции вывода без обработки e(«some text»); не дают результата.


Проверенные варианты:

@var3: @var1 @var2; // вывод: «1 2»

@var3: @var1()@var2; // ошибка

@var3: ((@var1)(@var2)); // ошибка

@var3: ( ( @var1 ) ( @var2 ) ); // «1 2»

@var3: e("") @var1 e("") @var2 e(""); // " 1 2 "

@var3: "@var1 @var2"; // "@var1 @var2"

@var3: '@var1 @var2'; // "@var1 @var2"


Варианты использования: (если вдруг у кого-то возникнет вопрос «зачем?»)

1) изменение типа, например 1px -> 1%

2) создание ссылок, например: @root/@file-name


П.С. любые варианты и теории допускаются. Возможно ваш ответ натолкнет меня на правильную мысль.
  • Вопрос задан
  • 4241 просмотр
Решения вопроса 1
@Yaraife Автор вопроса
Ответ найден в вопросах на гитхабе.

Решение заключается в использовании функции вывода "%();", и выглядит примерно так:

@url-root: "sub.site.zone/folder/";
@url-my: "images/arrow.png";

@url-full: e(%("url(http://%s%s)", @url-root, @url-my));
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Halfi
@Halfi
Есть второй способ, если внутри надо использовать JavaScript:

@str: "hello";
@var: ~`"@{str}".toUpperCase() + '!'`;

Скомпилируется в:

@var: HELLO!;
Ответ написан
Комментировать
@Sauron918
Можно использовать интерполяцию:
@url: "@{url-root}@{url-my}";
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы