假设我正在从事一个 SPA 项目,该项目有两个不同的 CSS 框架,它们之间必须共存:一个“新的和新鲜的”框架和另一个“旧的和痛苦的”框架。我们 Web 应用程序的每个模块都应该使用新的 CSS 框架来完成,但是旧的具有如此激进的规则,它会覆盖我们新框架的一些基本规范化/重置规则并影响新的 css。一个例子:
旧框架.css
// It's a stupid thing, but in this example this code will modify your new
//framework because doesn't add 'color:black' to define the basic style
// again.
body { color: red };
我考虑过不同的解决方案,但没有一个对我有用:
对新框架使用 css 命名空间。避免修改旧样式很好,但是如果您有一个新模块,其中包含新 css 的模块中包含旧 css 怎么办?这个新模块将包含很多 css bin。
创建一个巨大而疯狂的 css “规范化”文件,它会删除新框架不需要的所有 css 规则。您的旧 css 框架越大,您必须添加的规则数量就越多,以删除以前的样式。这对“恢复”“初始”浏览器样式的 Web 性能产生了巨大的影响。
两者的结合:新框架具有 css 命名空间,旧框架在文件末尾包含“规范化”样式。这是我目前在我的特定情况下能够找到的最佳选择,但我想相信另一种解决方案是可能的。
你如何处理这个问题?在您看来,处理它的最佳策略是什么?