【问题标题】:Can I remove an already rendered CSS attribute or declaration?我可以删除已经呈现的 CSS 属性或声明吗?
【发布时间】:2010-08-05 14:32:19
【问题描述】:

有什么方法可以删除已经在元素上呈现的 CSS 属性/声明?例如,如果我使用 CSS 重置样式表将图像的边距设置为 0,我就不能再使用 hspace 或 vspace 值(是的,我知道它们在 HTML 4+ 中已被弃用)。有没有办法删除这个声明,以便浏览器正确呈现 vspace 和 hspace?

作为另一个例子,您的浏览器允许您更改链接的颜色,这些颜色在浏览器的某些配置区域中指定(工具->选项->内容->字体和颜色->Firefox 3.6的颜色,如一个示例)但是,这些设置仅适用于标签未应用颜色声明的情况。从重置样式表或站点范围的样式表中将颜色应用于 lnks 后,如何将其删除以便使用浏览器设置?

【问题讨论】:

    标签: css colors webbrowser-control


    【解决方案1】:

    您可以在 CSS 规则的下方将 CSS 属性设置回auto

    #element {
        margin: 0;
    }
    
    #element {
        margin: auto;
    }
    

    【讨论】:

    • “what”简单,“how”不建议尝试。
    • 我对在这两种情况下都使用#element 感到有些困惑。它不会使第一个声明无用吗?另外,我不相信将 auto 用于颜色等属性是有效的。对于很好的示例,请尝试在此站点上的头像图像上设置 hspace,而不删除重置的 CSS。
    • 我的双 #element 示例只是为了展示最低 CSS 规则如何优先。因此,在您的情况下,如果您在重置样式表中有margin: 0,您只需要确保在该样式表中的较低位置(或在标记更下方的另一个样式表)您在要撤消的元素上设置margin: auto零设置。至于颜色,你是对的 - 没有 autodefault 值。
    • 啊,我现在明白了,感谢您澄清这一点。不幸的是,将其设置为“auto”仍然不起作用,因为它将其设置为用户代理样式表声明,而不是完全删除任何声明。
    【解决方案2】:

    我认为您必须将它们设置回规范中设置的默认值:http://www.w3.org/TR/CSS2/

    对于颜色,我认为没有设置默认值;它期待用户代理(浏览器)来定义它。因此,一旦在 CSS 中设置了颜色,我不相信以后可以“取消设置”它 - 您必须手动从重置中删除该样式。

    【讨论】:

    • 不幸的是,这并没有达到预期的结果。 “默认值”仍将覆盖 hspace/vspace 属性。我需要设置“无值”,就好像页面上不存在 CSS。
    • 默认情况下,所有元素都应用了样式,它们要么是特定于浏览器的,要么是遵循 CSS 规范的——这就是为什么,即使你根本不使用任何 CSS,h1 标签看起来也不同比 h2 标签;浏览器正在应用 CSS 规范样式。也许 hspace 和 vspace 不起作用的问题与 CSS 重置无关;您是否尝试过移除重置以查看重置消失后这些属性是否有任何影响?
    • 是的,我已经完全删除了 CSS,它按预期工作。如果您使用 Firefox 和 Firebug,您可以在此页面上检查头像图像。从 CSS 中的 img 中删除边距,然后编辑 html 以包含 hspace 或 vspace 属性。您将看到预期的行为。如果没有在 img 上进行边距声明,则 hspace 可以正常工作。
    • 很奇怪。我的建议是,如果您可以物理编辑 hspace 和 vspace 属性,只需使用内联样式即可。所以 转到
    猜你喜欢
    • 1970-01-01
    • 2018-10-25
    • 2019-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多