Задать вопрос
@CrazyFail

Как использовать @extend стилей класса из другого файла без включения самого файла?

Здравствуйте, уважаемые пользователи Тостера. Вопрос в следующем.
Например, я имею код в файле table.scss с некоторыми стилями (для .table и не только)
.sel1 {...}
.sel2{...}
.table {
  ...
}
sel3{...}

А в файле main.scss я хочу использовать стили класса .table предыдущего файла
.my-table {
  @extend ...
}

Я хочу использовать стили этого класса в main.scss, но без импорта файла в конечный (main.scss -> main.css). Т. е., чтобы в main.css не было .sel2, .sel3, а только стили из .table (table.scss) были в .my-table (main.scss). Прочитав части руководства по Sass я не обнаружил каких-то явных инструкций, чтобы сделать это. Вариант с импортом _table.scss не работает, файл всё равно импортируется полностью, а не используется по частям.
По-другому, я хочу использовать стили из фреймворков в "своих" классах без длинного списка этих классов в HTML шаблоне. (первый ответ https://toster.ru/answer?answer_id=516423 отражает то, что я хочу сделать).

P.S. Есть вариант использования так называемых "плейсхолдеров", объявляющихся через %name {}, которые как раз для этого и нужны, наверное, но это не слишком удобный вариант.
  • Вопрос задан
  • 549 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
isqua
@isqua
Научу HTML, CSS, JS, BEM и Git
Экстенд просто добавляет ваш селектор к тому, что вы экстендите. Поэтому нужен файл с экстендом. Для решения вашей задачи могут подойти миксины:

.my-table {
    @include .table();
}


Если вы используете CSS-минификатор, то можете не беспокоиться о том, что CSS будет избыточным. Минификатор позаботиться. А если вы не используете минификатор, то пора начать!

Не переэкстенживайте себя.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы