【问题标题】:How to include !important in jquery如何在 jquery 中包含 !important
【发布时间】:2010-12-31 11:12:16
【问题描述】:

我正在尝试使用 jQuery 之类的 !important 在 css 属性中添加

$("tabs").css('height','650px;!important');

但是 !important 没有效果。如何在 jquery 中包含 !important?

【问题讨论】:

  • 你能试试在 value 和 !important 之间不加分号吗?
  • Marc W 的答案就是答案。你不需要 !important。
  • 虽然 Marc W 的答案在技术上是正确的答案,但 klokop 的答案很有效

标签: jquery


【解决方案1】:

显然可以在 jQuery 中做到这一点:

$("#tabs").css("cssText", "height: 650px !important;");

源:http://bugs.jquery.com/ticket/2066

【讨论】:

  • 虽然,你可以做 $(elem).css('cssText', $(elem).css('cssText') + "your new css") 对吗? ;)
  • 这里的cssText是什么?
  • @Diffy,cssText 是 'style' 属性的 'cssText' 属性。 (即 element.style.cssText)
  • 我必须用这个方法设置高度和宽度,你必须把它写成一个衬里。示例$('img').css('cssText', "max-width: " +ui.value + 'px !important;' + "max-height: "+ui.value + 'px !important;');
  • @Juan 虽然它也会给你带来非内联样式。你最终会得到一份 CSS 的报纸。
【解决方案2】:

我解决了这个问题:

inputObj.css('cssText', inputObj.attr('style')+'padding-left: ' + (width + 5) + 'px !IMPORTANT;');

所以不会丢失内联样式,最后一个会覆盖第一个

【讨论】:

    【解决方案3】:

    还可以添加更重要的属性:

    inputObj.attr('style', 'color:black !important; background-color:#428bca !important;');

    【讨论】:

      【解决方案4】:
      var tabsHeight = 650;
      
      $("tabs").attr('style', 'height: '+ tabsHeight +'px !important');
      

      #CSS
      .myclass{height:650px !important;}
      

      然后

      $("tabs").addClass("myclass");
      

      【讨论】:

        【解决方案5】:

        如果您需要让 jquery 对多个项目使用 !important,您可以这样做。

        例如将 img 标签 max-width 和 max-height 分别设置为 500 像素

        $('img').css('cssText', "max-width: 500px !important;' + "max-height: 500px !important;');
        

        【讨论】:

          【解决方案6】:

          当您需要使用 jquery 来设置 !important 属性时,我构建的一个插件可以让您这样做。

          $.fn.important = function(key, value) {
              var q = Object.assign({}, this.style)
              q[key] = `${value} !important`;
              $(this).css("cssText", Object.entries(q).filter(x => x[1]).map(([k, v]) => (`${k}: ${v}`)).join(';'));
          };
          
          $('div').important('color', 'red');
          

          【讨论】:

            【解决方案7】:

            如果您确实需要覆盖其中包含 !important 规则的 css,例如,在我最近遇到的情况下,覆盖 wordpress 主题需要 !important scss 规则来破坏主题,但是因为我正在编译我的代码使用 webpack 和(我认为这就是为什么 -加权类,而不是动态调整 css。只是一个想法。

            【讨论】:

              【解决方案8】:

              使用 jQuery 修改 CSS 时不需要 !important,因为它直接修改了 DOM 中元素的 style 属性。 !important 仅在样式表中需要,以禁止在较低级别覆盖特定样式规则。直接修改style可以去的最低级别,所以!important没有意义。

              【讨论】:

              • 除非您想覆盖现有的 !important 规则...
              • 是的:如果样式表中有 !important 是您要覆盖的,那么您需要在 $().css() 中使用它。
              • 正如其他 cmets 所暗示的,这是错误的。虽然style 属性会覆盖所有未应用!important 的CSS,但它不会影响应用!important 的CSS。
              • 这不仅是不正确的,而且 OP 询问他是否需要如何不
              猜你喜欢
              • 1970-01-01
              • 2012-04-13
              • 1970-01-01
              • 1970-01-01
              • 2017-02-08
              • 1970-01-01
              • 1970-01-01
              • 2019-06-25
              • 2014-02-10
              相关资源
              最近更新 更多