Я использовал то, что я считал очень элегантным шаблоном для определения стилей повторно используемых компонентов/виджетов, используя LESS. Он отлично работает в LESS 1.3-, но после обновления в последнее время вся моя библиотека сломана. Кто-нибудь знает способ сделать что-то подобное в версии 1.4+?Как переопределить mixins в LESS CSS 1.4+
Вот очень простой пример компонента:
#componentName {
.loadMixins(){
.text() {}
.header() {}
}
.apply(){
> h3 {
// markup-specific styles
padding: 3px;
margin-bottom: 0;
// custom styles
.header();
}
> div.body, > div.popup p {
color: red;
// custom styles
.text()
}
}
}
А вот как он будет использоваться:
.coolWidget {
#componentName.loadMixins();
// override mixins here
.text(){
color: green;
}
#componentName.apply();
}
Это сохраняет все разметки в зависимости от стилей абстрагируется от пользователя. Я мог бы полностью изменить свою разметку, и стили пользователя все равно будут работать. Согласно less.js changelog, 1.4.0 Beta 1 имеет строку «переменные в mixins больше не« течет »в их область видимости».
Есть ли какой-либо путь вокруг этого?
Hi Max! Большое спасибо за ответ - вы правы, я ошибся своим примером - предполагается, что mixloads() mixin устанавливает значения по умолчанию. Просто сделал пример http://codepen.io/anon/pen/wGyHb, и похоже, что они используют 1.3.x, поэтому переопределения работают. Если вы запустите его в 1.4.x, но не кубики :(Мне бы хотелось найти другой способ сделать это. –
Конечно, мой ответ выше 1.4.x (я тестировал с lescc 1.4.2 и 1.5.0 -b2), где этот код все еще работает (и нет причин, почему он не должен). –
Вы, сэр, совершенно правы - я просто запускал это в другой среде, и это сработало. Похоже, у меня есть проблема, связанная с окружающей средой. Большое спасибо за помощь и за все ваше время! –