ezhikov
@ezhikov

Как избавиться от избыточного наследования в scss?

Здравствуйте.
У меня имеется класс кнопки, элемент кнопки и инпут с типом кнопки.
.btn, button, [type="button"] {}
Так же есть несколько элементов, которые наследуются от .btn
В итоге, когда я пытаюсь использовать a:not(.btn), получаю целую огромную портянку, которая не работает, поскольку вклиниваются вложенные селекторы.
a:not(.btn):not(button):not(.fine .select):not([type=button])


Мне кажется, что можно сделать примесь с нужными стилями, либо наследоваться для все от какого-то независимого класса (добавляет лишний неиспользуемый класс в css).

Может есть еще какие-то варианты?

примечание: версия sass 3.1.9

UPD:
чтобы не приводить огромное количество связанного кода, небольшой демонстрационный кусок:
scss:
.newClass {
  display: inline-block;
}
.fancy {
  .select {
    @extend .newClass;
  }
}
.label:not(.newClass) {
  display: block;
}

css:
.newClass,.fancy .select {
    display: inline-block
}

.label:not(.newClass):not(.fancy .select) {
    display: block
}
  • Вопрос задан
  • 2300 просмотров
Пригласить эксперта
Ответы на вопрос 1
viktorvsk
@viktorvsk
Или вопрос не так поставлен, или похоже на бред
.label.newClass{ display: inline-block; }
.label{ display: block; }

А :not, как минимум в данном случае - это костыль какой-то
Ответ написан
Ваш ответ на вопрос

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

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