Suponho que você queira inserir uma style
tag versus uma link
tag (referenciando um CSS externo), e é isso que o exemplo a seguir faz:
<html>
<head>
<title>Example Page</title>
</head>
<body>
<span>
This is styled dynamically via JavaScript.
</span>
</body>
<script type="text/javascript">
var styleNode = document.createElement('style');
styleNode.type = "text/css";
// browser detection (based on prototype.js)
if(!!(window.attachEvent && !window.opera)) {
styleNode.styleSheet.cssText = 'span { color: rgb(255, 0, 0); }';
} else {
var styleText = document.createTextNode('span { color: rgb(255, 0, 0); } ');
styleNode.appendChild(styleText);
}
document.getElementsByTagName('head')[0].appendChild(styleNode);
</script>
</html>
Além disso, notei na sua pergunta que você está usando innerHTML
. Essa é, na verdade, uma maneira não padrão de inserir dados em uma página. A melhor prática é criar um nó de texto e anexá-lo a outro nó do elemento.
Com relação à sua pergunta final, você ouvirá algumas pessoas dizerem que seu trabalho deve funcionar em todos os navegadores. Tudo depende do seu público. Se ninguém do seu público estiver usando o Chrome, não se preocupe; no entanto, se você deseja atingir o maior público possível, é melhor oferecer suporte a todos os principais navegadores de categoria A
document.head
é suportado em todos os principais navegadores.