CSS重置仅适用于#widget

时间:2009-10-09 11:49:10

标签: css reset

假设我有使用复杂CSS的小部件,并且必须嵌入到多个都有CSS的网站中。

如果我用“#widget”为所有小部件的CSS规则添加前缀,它们将不适用于外部的任何内容,因此修复了一个问题。不幸的是,该网站的CSS规则仍然会使小部件混乱。

如果我使用适当的重置规则重置#widget内的所有CSS,那么希望它们会覆盖所有外部规则,对吧? (因为我的规则使用#id而外部规则不知道我的小部件中的任何ID,他们不能覆盖它们,对吧?!尽管很重要)

将所有CSS重置为已知状态的最佳方法是什么?大多数CSS重置都是从浏览器默认值开始的,它们不会重置任意CSS。是否有任何CSS重置无论什么都有效?

4 个答案:

答案 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/