Skip to content

Instantly share code, notes, and snippets.

@Frontenda
Forked from yckart/jquery.addrule.js
Created April 20, 2016 08:36
Show Gist options
  • Select an option

  • Save Frontenda/d0d5a9c7073ab6f128ed385d781c28c1 to your computer and use it in GitHub Desktop.

Select an option

Save Frontenda/d0d5a9c7073ab6f128ed385d781c28c1 to your computer and use it in GitHub Desktop.
Add css-rules to an existing stylesheet - http://stackoverflow.com/a/16507264/1250044
/*!
* jquery.addrule.js 0.0.1 - https://gist.github.com/yckart/5563717/
* Adds css-rules to an existing stylesheet.
*
* Copyright (c) 2013 Yannick Albert (http://yckart.com)
* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php).
* 2013/05/12
**/
(function ($) {
window.addRule = function (selector, styles, sheet) {
if (typeof styles !== "string") {
var clone = "";
for (var style in styles) {
var val = styles[style];
style = style.replace(/([A-Z])/g, "-$1").toLowerCase(); // convert to dash-case
clone += style + ":" + (style === "content" ? '"' + val + '"' : val) + "; ";
}
styles = clone;
}
sheet = sheet || document.styleSheets[0];
if (sheet.insertRule) sheet.insertRule(selector + " {" + styles + "}", sheet.cssRules.length);
else if (sheet.addRule) sheet.addRule(selector, styles);
return this;
};
if ($) {
$.fn.addRule = function (styles, sheet) {
addRule(this.selector, styles, sheet);
return this;
};
}
}(this.jQuery));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment