webpack合并 CSS 后,不同组件的样式互相影响(兄弟组件样式影响)

发布于 2022-09-04 07:04:08 字数 906 浏览 13 评论 0

先声明: 个人对 css in js 的写法不太感冒

依赖: webpack, react

  1. css-modules 没法很好消除组件间样式影响 (当使用路由时, 兄弟组件之间的样式会相互影响)

但是目前除了 css-modules 还有什么好的解决方法吗?

举例说明:

例如一个很普通的一个类 .iconapp.js 是入口文件, nav.js(每个页面公用的导航栏) 与 home.js (主页) 是兄弟组件, 在与 nav.js 同文件夹下的 style.css 定义了

.icon{  display: inline-block;
    vertical-align: 0;}

,

同时也在与 home.js 同文件夹下的

.icon{  display: inline-block;
    width: 16px;
    height: 16px;
    opacity: 0.33;
    margin-right: 10px;}

,

由于是单页面, home.js 文件夹下的 style.css 的css优先级会高于 nav.js 文件夹下的 style.css 优先级, 导致 nav.js 文件夹下的 style.css 的样式被覆盖了。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

绻影浮沉 2022-09-11 07:04:08

我一般都是直接用less来层层嵌套一个组件的各级Dom样式的,当然层数多了性能会下降,那么可以考虑BEM,就是类名太长看着有点烦。

也不知道你这里说的组件是哪种组件,如果是公用的话统一维护一套,命名注意点就OK了;如果是某个页面特有的,那么大概可以考虑给页面起个id来营造个scope?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文