单页面、SPA、angular、router,如何解决css命名冲突的问题?

发布于 2022-09-01 23:19:15 字数 510 浏览 22 评论 0

假如我的应用中的css是按需加载的,有以下2个对应。

路由: /index
样式:index.css

body { background:red; }

路由: /index2
样式:index2.css

body { background:blue; }

如果我当前访问的是/index,那么背景是red的,然后切换到/index2,按需加载载入了index2.css,所以背景变成了blue

这个时候问题来了,如果我又切换回了/index,那么背景依然会是blue

请问在ui-router或者任何的spa应用都是如何避免这样的问题的?

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

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

发布评论

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

评论(5

凉城凉梦凉人心 2022-09-08 23:19:15

最后针对angular,我使用了 angular-css 这个插件,配合ui-router这个能够实现我的需求。

切换了路由,会自动把对应的link去掉(看了下代码,是通过ng-repeat实现的),这样就无需担心冲突的问题了。

梦情居士 2022-09-08 23:19:15

这不是加载顺序的问题么,index2.css 是后加载的,覆盖了 index.css 中的样式。

为什么不用点儿什么东西区分一下呢,比如:

<body ng-class="{body_1: is_index_1, body_2: is_index_2}">
    ....
</body>
永言不败 2022-09-08 23:19:15

试试css-modules,不知道是否适合你的场景。

比忠 2022-09-08 23:19:15

既然能动态加,为什么不能动态的删除咧
动态皮肤怎么弄的你就怎么整呗~~~

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