Я рассматривал UiKit, фреймворк, построенный с помощью LESS, и заметил довольно интересную особенность: крючки. Посмотрите на следующие команды в рамках:Есть «крючки» в SASS?
.uk-panel-badge {
position: absolute;
top: 0;
right: 0;
z-index: 1;
.hook-panel-badge;
}
.hook-panel-badge() {}
Если вы хотите переопределить в теме, скажем, вы строите за пределами основных файлов (файлы, которые приходят позже в компиляции), то вы могли бы сделать следующее :
.hook-panel-badge() {
right:auto;
}
так, в сущности, это выглядит, как вы можете переопределить/настроить селекторы без добавления дополнительных селекторов, поэтому он сохраняет разметку как можно меньше.
Есть ли что-нибудь подобное в SASS? Это выглядит как удивительная функция, которую я бы хотел использовать в качестве пользователя SASS в первую очередь, но я не нашел @extend
, чтобы быть тем же. Благодаря!
Update
Функция placeholder
, кажется, ближе всего я нашел:
.panel {
background:red;
@extend %hook-panel;
}
%hook-panel {
color:blue;
}
Что делает, как:
.panel {
background: red; }
.panel {
color: blue; }
и может быть определен после (который является удивительным), но это все еще дублирует селектор. В любом случае, нужно только указать значение заполнителя в исходном селекторе, в которое оно включено?
Если вы определяете загрузку свойств в классе SASS, то в нижней части этого класса используйте '@extend hook-class', чтобы конфликтующие свойства« hook-class »были перезаписаны, даже если они (вроде) объявлены впоследствии ? Я предполагаю, что так вы сказали, что вы упомянули '@ extend' в своем вопросе ... –
Проблема, которую я видел, делая что-то вроде того, что вы говорите, я все равно получаю дубликаты селекторов: [пример] (http: // pastebin .com/dRaUnR3B) – Zach
Я понимаю, что вы имеете в виду. Поэтому поведение SASS заключается в сохранении исходного класса, но LESS его уничтожает. Разметка была бы такой же, хотя - в примере, который вы указали, использование класса 'uk-panel-badge' создаст синий фон. Единственное различие заключается в том, что файлы CSS для версии SASS будут немного больше (мы говорим о небольшой разнице). –