【问题标题】:How can you remove an important CSS property?如何删除重要的 CSS 属性?
【发布时间】:2012-03-31 13:46:35
【问题描述】:

如果元素样式属性很重要(通过style="" 或JS 设置),如何删除它?

removeProperty() 不起作用 (jsfiddle):

elem.style.setProperty('background', '#faa', 'important');
elem.style.removeProperty('background'); // doesn't work

(最好是无框架的解决方案,它只需要在 Chrome 中工作。)

【问题讨论】:

    标签: javascript css google-chrome


    【解决方案1】:

    您无法删除该属性的原因是它是一个速记属性。

    当你设置它时,实际上添加了其他属性,但没有“背景”属性,所以没有“背景”属性可以删除。

    在这种情况下,您可以这样取消设置:

    elem.style.removeProperty('background-color');
    

    通常,您需要取消设置由速记属性表示的每个“速记”属性。


    你也可以这样做来覆盖它:

    elem.style.setProperty('background', 'inherit', 'important');
    

    或者您可以像这样对元素的整个内联样式进行核对:

    elem.style.cssText = '';
    

    【讨论】:

    • 有趣的是,removeProperty('background') 如果没有使用important 设置,它确实可以工作。
    • 太好了,cssText 对我来说很有用。 +2 ;-)
    • 删除速记属性似乎会删除所有未设置为important 的相应“速记”属性。设置为 important 的那些(直接作为速记属性或通过速记属性)似乎必须明确删除。我还没有找到支持这一点的参考资料,但我猜这是设计使然。
    • border-color 对我这样做,我拒绝相信这是一个速记属性(因为它已经是 border 的一个组件)。但是,果然,border-left-color 存在并且可以删除:|
    猜你喜欢
    • 2021-11-27
    • 1970-01-01
    • 2022-01-16
    • 2012-01-08
    • 2011-01-02
    • 1970-01-01
    • 1970-01-01
    • 2020-07-25
    • 1970-01-01
    相关资源
    最近更新 更多