tl: dr version: есть ли способ @ расширить класс css и не отображать исходный класс в моем скомпилированном css без изменения всех моих классов css на классы-заполнители ?
Краткий ответ, основанный на приведенных ниже ответах: похоже, это невозможно сделать, если вы не пройдете и не преобразуете CSS в классы без звука / заполнителя, например. конвертировать .one {} в% one {}, и даже тогда это вызовет проблемы с медиа-запросами.
У меня есть файл css (назовем его "style.css"), который содержит 200+ классов CSS для стилизации различных элементов, таких как формы, кнопки и т. Д. Я хочу включить некоторые из этих классов в проект, а другие классы из этого файла. в других случайных проектах / сайтах. В каждом новом проекте я также хочу давать классам случайные семантические имена классов по моему выбору.
При работе с CSS я предпочитаю препроцессор SCSS, и мне действительно нужен ответ, который использует возможности SCSS.
Вот краткий пример того, о чем я говорю - загрузка css в файл SCSS, а затем расширение этого css моими собственными именами классов:
//style.css
.one {
color: red;
padding-top: 1px;
}
//style2.scss
@import "style.css";
.two {
@extend .one;
}
Проблема здесь в том, что мой файл SCSS будет компилироваться в CSS и будет выглядеть так:
//style2.css
.one {
color: red;
padding-top: 1px;
}
.two {
color: red;
padding-top: 1px;
}
Но я хочу включить только второй класс, которому я дал особое имя.
Я пробовал несколько способов сделать это, но вот один пример, который не работает, но соответствует тому, что я думал, что должен уметь:
A.) Сначала я беру файл style.css и копирую / вставляю его в файл style.scss.
Б.) Во-вторых, я оборачиваю все это в класс-заполнитель / безмолвный класс, вот так:
//style.scss
%placeholder {
.one {
color: red;
padding-top: 1px;
}
}
C.) Затем я импортирую этот файл SCSS и пытаюсь расширить класс по моему выбору, который находится внутри заполнителя, например:
//style2.scss
@import "style";
.two {
@extend .one;
}
Когда я пытаюсь скомпилировать это, я получаю пустой файл css (и это правильно, если я пытаюсь быть слишком сложным). Еще я знаю, что вы не можете расширять вложенные селекторы так: "@extend% placeholder .one;" тоже не может быть и речи.
У меня такой вопрос: знает ли кто-нибудь способ импортировать, а затем расширить класс css, чтобы в скомпилированный результат не входил импортированный css?
Единственное другое решение, которое я могу придумать, - это просто удалить импортированный css из верхней части моего файла, прежде чем я выпущу его в дикую природу. Но это, честно говоря, далеко не идеальное решение.
Заранее спасибо за любые ответы :)