Вы всегда можете добавить отдельное правило стиля в существующую таблицу стилей вместо создания нового элемента стиля. Что-то вроде:
function addStyle() {
var style = document.styleSheets[0]; //select style sheet (0==first)
var styleSel = ".class:hover"; //define selector
var styleDec = "color: red;"; //define declaration
if(style.insertRule) { //for modern, DOM-compliant browsers
style.insertRule(styleSel+'{'+styleDec+'}', style.cssRules.length);
//I chose to do it this way to more easily support the addRule method, but
//know that insertRule only needs two parameters, full style rule
//(selector+prop/value declarations), and index to insert rule at
// styleSheets[0].insertRule(rule, index);
}else { //for IE < 9
style.addRule(styleSel, styleDec, -1);
}
}
Я адаптировал пример в MDN
Предполагается, что вы используете класс (который уже определен и применен) для добавления псевдоселектора: hover, но он также может быть просто селектором идентификатора или элемента. заранее с классом или стилевым правилом, вы также можете сделать это динамически почти таким же образом (определить класс, определить class: hover, затем применить класс к нужным элементам).