css - 从 css 模块中引用全局类名

标签 css bem css-modules

想象一个更传统的 Web 应用程序,该应用程序正在一个页面中慢慢引入 React 组件,该页面复杂到需要它。

我们正在使用 Webpack 开发这个新的 UI,我们正在为新 UI 需要的所有新 css 使用 css 模块。但是我们仍然需要重用一些全局的 css,并通过 html 中链接的传统 css 样式表在应用程序中提供。

因此我们需要在我们的 css 模块中偶尔编写引用全局命名空间中的 css 类的规则,而不是在本地范围内的类,因此在应用程序运行时转换为更像 gem 的长 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。不要弄乱它或尝试 BEM s**t它”。

我想像这样的东西应该存在,但到目前为止我还没有通过谷歌搜索找到它。

最佳答案

要在 :local 范围的 css 模块中引用全局声明的类名,您应该使用 :global 开关:

  .container {
    // rules for container
  }

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

更详细explanation在 css-modules 文档中。

关于css - 从 css 模块中引用全局类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52324227/

相关文章:

javascript - 多次点击时显示多张图像

html - 将 HTML5 语义元素与 BEM 方法结合使用

css - 您应该在使用 BEM 时设置元素样式还是应该添加额外的类

css - Angular 2 CSS 模块

即使在弹出 create-react-app 后,css 模块也无法工作

javascript - Jquery 未在页面加载时运行

javascript - 无法检查是否有值(value)且可见

javascript - 如何让边界元法 (BEM) 不再那么晦涩难懂

css - 在每个样式表配置中自动导入 sass partials

css - webpack 输出 css 文件