Ссылка на имена глобальных классов из модуля css

Представьте себе более традиционное веб-приложение, которое медленно вводит компонент React на одной странице, достаточно сложный, чтобы в нем нуждаться.

Мы разрабатываем этот новый пользовательский интерфейс с помощью Webpack, и мы используем модули CSS для всех новых CSS, которые необходимы новому пользовательскому интерфейсу. Но нам все еще нужно повторно использовать некоторые глобальные CSS, которые предоставляются в приложении через традиционную таблицу стилей CSS, связанную в html.

Поэтому нам нужно в наших модулях css иногда писать правила, которые относятся к классу css в глобальном пространстве имен, а не к классу, который локально привязан к нему и, следовательно, преобразуется в более похожее на драгоценный камень длинное имя класса css при запуске приложения:

.container {
  // rules for container
}
.container.pull-right {
  // rules for when the container element also has the pull-right class
}

В приведенном выше примере container должен быть классом css, который модуль css будет контекстуализировать для конкретного компонента, использующего этот модуль.

Но pull-right - это класс, который существует в файле css, доступном на странице, но не обрабатывается модулями css или Webpack. Следовательно, нам нужен способ (возможно, синтаксис), чтобы сообщить модулям css: «Эй, оставьте pull-right в том виде, как он есть в вашем выводе. Не связывайтесь с ним и не пытайтесь БЭМ из него дерьмо».

Я предполагаю, что что-то подобное должно существовать, но я пока не смог найти его в Google.

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
1
0
1 324
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чтобы ссылаться на глобально объявленное имя класса внутри модулей css с областью действия :local, вы должны использовать переключатель :global:

  .container {
    // rules for container
  }

  .container:global(.pull-right) {
    // rules for when the container element also has the pull-right class
  }

Подробнее объяснение в документации css-модулей.

Другие вопросы по теме