Добавление префиксов поставщиков с помощью миксина LESS

Я получаю синтаксическую ошибку для этого микса:

.vendors(@statement){
  @statement;
  -moz-@statement;
  -webkit-@statement;
}

Любой способ сделать это, или переменные миксина должны быть справа от :?


person Artur Sapek    schedule 21.09.2012    source источник
comment
Этот ответ для показа префикса LESS почему вы можете не захотеть этого делать, и как сопоставление с образцом в LESS может быть полезным в префиксах.   -  person ScottS    schedule 18.02.2013


Ответы (3)


Начиная с Less v2, вы можете использовать плагин автопрефикса для префикса ваших свойств, который кажется лучшая альтернатива. Подключаемый модуль autoprefix добавляет префиксы браузера, используя постпроцессор autoprefixer. Для компиляции на стороне клиента (в браузере) вы можете использовать -prefixfree.

Как уже упоминалось @ScottS здесь вы можете использовать переменную интерполяцию в селекторах, начиная с Less v1.6, что позволяет вам делать:

.prefix(@property, @value)
{
    -webkit-@{property}:@value;
    @{property}:@value;
}
selector {
    .prefix(property,value);
}

выходы:

selector {
  -webkit-property: value;
  property: value;
}

Вы также должны прочитать: Я слишком усложняю свой LESS для префиксов поставщиков?

person Bass Jobsen    schedule 04.11.2014

Это хромой ответ, но я не думаю, что это возможно.

person Christoph Leiter    schedule 22.09.2012
comment
Это очень хороший вопрос, потому что это возможно в SASS, и я пытаюсь имитировать это с помощью Less. И я пока не нашел никакого решения. Потому что я такой же хромой, как и любой, кто знает, откуда взялся вопрос. - person formigarafa; 14.03.2014

Это невозможно сделать, но есть обходные пути. Если бы это сработало, я думаю, это было бы что-то вроде этого:

.vendors(@prop, @val){
  ~"-webkit-@{prop}:@{val}";
}

Примечание: это не работает.

Вот очень длинное обсуждение этой темы: https://github.com/cloudhead/less.js/pull/698

Вы можете использовать эту библиотеку: less-properties

person posit labs    schedule 22.05.2013