注入新的 CSS 规则

Avatar of Chris Coyier
Chris Coyier

如果您需要使用 JavaScript 更改元素的样式,通常最好更改类名,并让页面上已有的 CSS 生效并更改样式。但是,每个规则都有例外情况。例如,您可能希望以编程方式更改伪类(例如 :hover)。您不能通过 JavaScript 执行此操作,原因与内联 style="" 属性无法更改伪类相同。

您需要将一个新的 <style> 元素注入到页面中,其中包含正确的样式。最好将其注入到页面底部,以便它覆盖上面的 CSS。使用 jQuery 很容易

function injectStyles(rule) {
  var div = $("<div />", {
    html: '&shy;<style>' + rule + '</style>'
  }).appendTo("body");    
}

用法

injectStyles('a:hover { color: red; }');

演示

更多信息