仅适用于 #widget 的 CSS 重置

发布于 2024-08-08 03:17:41 字数 341 浏览 2 评论 0原文

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

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

如果我使用适当的重置规则重置#widget 内的所有 CSS,那么希望它们会覆盖所有外部规则,对吗? (因为我的规则使用 #id 并且外部规则不知道我的小部件内的任何 id,所以它们无法覆盖它们,对吧?!尽管如此重要)

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

Let's say I have widget that uses complicated CSS, and must be embedded in multiple websites that all have their CSSes.

If I prefix all widget's CSS rules with "#widget", they won't apply to anything on the outside, so one problem fixed. Unfortunately CSS rules of the site can still mess the widget.

If I reset all CSS inside #widget with proper reset rules, then hopefully they will override all outside rules, right? (because my rules use #id and outside rules don't know any ids inside my widget, they cannot override them, right? !important notwithstanding)

What's the best way to reset all CSS to known state? Most CSS resets start from browser defaults, they don't reset arbitrary CSSes. Is there any CSS reset that works no matter what?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

那些过往 2024-08-15 03:17:41

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

https://github.com/premasagar/cleanslate

我还没有在生产中使用它,但它显然来自 BBC World Service 小部件的开发。

I came across cleanslate.css while trying to solve the same problem:

https://github.com/premasagar/cleanslate

I've not use it in production yet, but it apparently came out of the development of the BBC World Service widget.

七月上 2024-08-15 03:17:41

是的,您的 CSS 应该覆盖小部件外部声明的任何内容,但您的重置必须非常全面。我建议使用 http://meyerweb.com/eric/thoughts/2007/05/01/reset -reloaded/,但您必须自己修改所有选择器。

我也想加强你的选择器,所以

#widget tagname{}

而不是使用你的选择器。

html body #widget tagname{}

现在你的选择器将具有更高的权重,

Yes, your css should override anything declared outside the widget, but your reset must be quite comprehensive. I suggest using a modified version of http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/, but you'll have to modify all the selectors yourself.

I would be tempted to strengthen your selectors also, so rather than

#widget tagname{}

Use

html body #widget tagname{}

Your selectors will now have a much higher weight.

酒儿 2024-08-15 03:17:41

使用命名空间 &重置&较少的

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

  ... your other styles ...
}

Use namespace & reset & LESS

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

  ... your other styles ...
}
挖鼻大婶 2024-08-15 03:17:41

我使用 Eric Meyer 的 Reset Reloaded 来重置 CSS 样式。
关联:
http://meyerweb.com/eric/thoughts/2007/05 /01/重置重新加载/

I use Eric Meyer's reset reloaded to reset CSS styles.
Link:
http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文