【发布时间】:2014-06-23 11:23:05
【问题描述】:
我想在 CSS 中创建一种“范围”,以便特定样式标签中的所有 CSS 只影响特定的 html 节点。
更简单:我想要这样的东西:
<style id="style1">
.foo { color: red; }
.bar { color: green; }
</style>
<style id="style2">
.dor { color: blue; }
</style>
动态变成这样的:
<style id="style1">
#scope1 .foo { color: red; }
#scope1 .bar { color: green; }
</style>
<style id="style2">
.dor { color: blue; }
</style>
使用 PHP 或 JavaScript(最好使用 jQuery)
有简单的方法吗?
【问题讨论】:
-
如果你用 JS 重写 CSS,你必须注意 CSS 不会被解析和渲染两次——第一次是原始格式,第二次是在重写后。在服务器上提供完整的 CSS 会更好......
-
确实如此,用 PHP 重写 CSS 似乎是最好的选择。唯一的问题仍然是如何优雅地做到这一点,并且不会在 CSS 代码中产生错误。
-
“不可能在 CSS 代码中创建错误”使用 CSS 预处理器,如下面的答案中建议的那样。
标签: javascript php css scope