【问题标题】:Formatting of elements inside a div element without effect of inherited cssdiv元素内元素的格式设置不影响继承的css
【发布时间】:2010-11-24 19:47:09
【问题描述】:

我在随机网站中将弹出窗口显示为固定 div。

我需要 div 的内容不受其所在页面格式的影响。div 内的元素具有内联 CSS,我希望只有内联 CSS 有效,而不是继承的 CSS。

一种方法是使用 iframe。我正在寻找其他方法。

我正在考虑的选项:

  1. 一个小的 javascript 代码将在所有元素上运行并重置继承的 css。 可能吗?我可以告诉跨浏览器一个属性不是由内联 css 创建的吗?

  2. Javascript 代码将一组属性重置为 div 内的所有元素(例如所有填充、边距等,但仍保留内联 css 的样式属性?

关于如何做的任何其他创意?

【问题讨论】:

    标签: javascript html css dom


    【解决方案1】:

    div内的元素有内联 CSS,我只想要内联 CSS 有效,不继承CSS

    这是默认行为。内联 CSS 具有最高优先级。

    AFAIK 除非您覆盖继承的样式,否则您将无法删除这些样式。

    【讨论】:

    • 是的,但是我没有设置内联的属性得到继承的值(我想避免)
    【解决方案2】:

    另一种选择(尽管是否实用取决于您的站点)是拥有一个名为“resetCSS”的类或可以应用于类的类似内容。您可以在选择器中使用此类,在这里您可以为您使用的所有属性(例如边距、字体等)设置基值。

    然后在使用时将该类应用到一个元素,这会将所有内容重置为默认值,然后您可以使用 CSS 覆盖这些值。

    另一种选择是将所有当前的 CSS 更改为在选择器中具有“样式化内容”类,这样只有专门标记的内容才会接收样式化,这样就没有机会将其应用于元素你不想拥有它。

    如果你想让一个 div 有一个特定的样式,即使这是默认样式,最好还是明确地给它那个样式。如果它仍然使用默认值,那么您什么都不会丢失,如果它继承了其他东西,那么您将其设置为您想要的。依赖默认样式可能会咬你一口,因为没有理由任何两个浏览器都应该具有相同的默认样式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-01
      • 2016-07-08
      • 1970-01-01
      • 2017-05-23
      • 1970-01-01
      相关资源
      最近更新 更多