【问题标题】:How can use JavaScript to set a style with !important? [duplicate]如何使用 JavaScript 设置带有 !important 的样式? [复制]
【发布时间】:2015-07-04 14:46:46
【问题描述】:

除了尝试添加!important 时,我没有任何问题。它只是不会采取。我需要添加它以动态覆盖字体大小。

这是我调整样式的方法:

function newFont(newSizeA) {
    var elems = document.getElementsByClassName('a');
    for(i=0; i<elems.length; i++) {
        elems[i].style.fontSize = newSizeA + 'px!important';
    }

}

newFont(20);

使用!important 会失败,如果没有!important 则可以。

编辑:这需要回到 IE8,所以我希望有一个有人知道的跨浏览器解决方案。

【问题讨论】:

标签: javascript css


【解决方案1】:

您的 CSS won't parse !important 声明以这种方式编写(它只期望值空间中 fontSize 的合法值,这意味着数字,而不是数字和字符串)。相反,您可以通过设置style 属性来编写它。

根据QuirksMode 和MSDN,IE8 及更高版本应支持此功能。

function newFont(newSizeA) {
    var elems = document.getElementsByClassName('a');
    for(i = 0; i < elems.length; i++) {
        elems[i].setAttribute('style', 'font-size:' + newSizeA + 'px' + '!important');
    }

}

newFont(20);
&lt;div class="a"&gt;asdf&lt;/div&gt;

【讨论】:

  • 这是否适用于 IE8?我现在的电脑上没有它来测试
  • @RON2015 我相信对.setAttribute 的支持是在 IE 版本 8 中引入的,所以它应该可以工作。我没有要测试的 IE8,我也不确定支持 IE8 的沙盒站点是否可以通过 VM 进行测试。
  • 不错的答案。这是正确的解决方案;我删除了我的错误。
  • elems[i].setAttribute('style', 'font-size:' + newSize + ' !important');确实添加了 !important 但由于某种原因它仍然不会覆盖样式表中设置的先前字体大小
  • 对不起,我意识到我需要针对该班级的第一个锚点哈哈...
猜你喜欢
  • 2015-06-17
  • 2011-03-14
  • 1970-01-01
  • 1970-01-01
  • 2017-05-30
  • 2021-09-09
  • 1970-01-01
  • 2016-10-19
  • 2014-02-04
相关资源
最近更新 更多