仅适用于#小部件的CSS重置

仅适用于#小部件的CSS重置,css,reset,Css,Reset,假设我有一个使用复杂CSS的小部件,并且必须嵌入到多个都有CSSE的网站中 如果我在所有widget的CSS规则前面加上“#widget”,它们将不会应用于外部的任何东西,因此一个问题得到了解决。不幸的是,网站的CSS规则仍然会弄乱小部件 如果我用正确的重置规则重置所有CSS内部#小部件,那么希望它们会覆盖所有外部规则,对吗?(因为我的规则使用#id,而外部规则不知道我的小部件内部的任何id,所以它们不能覆盖它们,对不对?!尽管很重要) 将所有CSS重置为已知状态的最佳方法是什么?大多数CSS重

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

如果我在所有widget的CSS规则前面加上“#widget”,它们将不会应用于外部的任何东西,因此一个问题得到了解决。不幸的是,网站的CSS规则仍然会弄乱小部件

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


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

我使用Eric Meyer的重置重新加载来重置CSS样式。 链接:

是的,css应该覆盖小部件外部声明的任何内容,但是重置必须非常全面。我建议使用的修改版本,但您必须自己修改所有选择器

我很想加强你们的选择者,所以

#widget tagname{}
使用


您的选择器现在将具有更高的权重。

我在尝试解决相同问题时遇到了cleanslate.css:


我还没有在生产中使用它,但它显然是在开发BBC世界服务小部件时使用的。

使用名称空间&reset&LESS

#my-ns {
  @import ".../reset.less";

  ... your other styles ...
}

我认为这个小部件可以放在任何页面上,因此您需要重置的CSS是未知的。为了完全安全,他需要在#widget前面加上全局重置规则(比如Eric Meyer的)的前缀。我完全同意(我也链接了它)Eric的重置似乎只是重置浏览器默认值,而不是所有可能被CSSE的东西,所以他们可能还不够。注意-CleanSlate项目已经从Google代码转移到GitHub:(我创建了这个项目-是的,它解决了这个问题;)
#my-ns {
  @import ".../reset.less";

  ... your other styles ...
}