Вот по этому адресу
https://www.w3.org/wiki/Dynamic_style_-_manipulati... очень простое подключение стилей с помощью innerHTML:
var sheet = document.createElement('style')
sheet.innerHTML = "body{background:#eee;}";
document.body.appendChild(sheet);
Но много где пишут, что так делать неправильно, а нужно использовать createTextNode, который будет присоединен к элементу style, который подключается к head.
var sheet = document.createElement("style");
sheet.type="text/css";
var css = document.createTextNode('body{background:#eee;}');
sheet.appendChild(css);
document.getElementsByTagName('head')[0].appendChild(sheet);
Вопрос такой: На сайте w3.org действительно «вредные советы» или именно так и надо делать?