假设我有使用复杂CSS的小部件,并且必须嵌入到多个都有CSS的网站中。
如果我用“#widget”为所有小部件的CSS规则添加前缀,它们将不适用于外部的任何内容,因此修复了一个问题。不幸的是,该网站的CSS规则仍然会使小部件混乱。
如果我使用适当的重置规则重置#widget内的所有CSS,那么希望它们会覆盖所有外部规则,对吧? (因为我的规则使用#id而外部规则不知道我的小部件中的任何ID,他们不能覆盖它们,对吧?!尽管很重要)
将所有CSS重置为已知状态的最佳方法是什么?大多数CSS重置都是从浏览器默认值开始的,它们不会重置任意CSS。是否有任何CSS重置无论什么都有效?
答案 0 :(得分:12)
我在尝试解决同样的问题时遇到了cleanslate.css:
https://github.com/premasagar/cleanslate
我还没有在制作中使用它,但它显然来自BBC World Service小部件的开发。
答案 1 :(得分:1)
是的,你的css应该覆盖小部件外宣布的任何内容,但你的重置必须非常全面。我建议使用 http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/的修改版本,但您必须自己修改所有选择器。
我也很想加强你的选择,所以而不是
#widget tagname{}
使用
html body #widget tagname{}
您的选择器现在具有更高的重量。
答案 2 :(得分:1)
使用命名空间&重置& LESS
#my-ns {
@import ".../reset.less";
... your other styles ...
}
答案 3 :(得分:0)
我使用Eric Meyer的重置重新加载来重置CSS样式。 链接: http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/