Конкатенация строк в меньшем количестве



Я думаю, что это невозможно, но я думал, что я спрашиваю в случае, если есть способ. Идея заключается в том, что у меня есть переменная для пути к папке веб-ресурсов:



@root: "../img/";
@file: "test.css";
@url: @root@file;

.px {
background-image: url(@url);
}


Я получаю это в результате:



.px { background-image: url("../img/" "test.css"); }


но я хочу, чтобы строки объединялись в одну строку следующим образом:



.px { background-image: url("../img/test.css"); }


можно ли объединить строки вместе в меньшем количестве?

628   6  

6 ответов:

использовать Переменной Интерполяции:

@url: "@{root}@{file}";

полный код:

@root: "../img/";
@file: "test.css";

@url: "@{root}@{file}";

.px{ background-image: url(@url); }

Как вы можете видеть в разделе документация, вы можете использовать строку интерполяции также с переменными и простые строки:

@base-url: "http://assets.fnord.com";
background-image: url("@{base-url}/images/bg.png");

Я ищу тот же трюк для обработки изображений. Я использовал миксин, чтобы ответить на это:

.bg-img(@img-name,@color:"black"){
    @base-path:~"./images/@{color}/";
    background-image: url("@{base-path}@{img-name}");
}

затем вы можете использовать :

.px{
    .bg-img("dot.png");
}

или

.px{
    .bg-img("dot.png","red");
}

Не знаю, если вы используете меньше.js или lessphp (как в WP-Less плагин для WordPress) но с lessphp вы можете "отменить кавычки" строки с ~ : http://leafo.net/lessphp/docs/#string_unquoting

для таких строковых единичных значений, как 45deg in transform: rotate(45deg) использовать . Пример:

// Mixin
.rotate(@deg) {
  @rotation: unit(@deg, deg);
  -ms-transform: rotate(@rotation);
  transform: rotate(@rotation);
}

// Usage
.rotate(45);

// Output
-ms-transform: rotate(45deg);
transform: rotate(45deg);

С Помощью Drupal 7. Я использовал обычный знак плюс, и он работает:

@images_path+'bg.png'

Comments

    Ничего не найдено.