1. Абсолютно все элементы на странице (в том числе
style,
link и
script) появляются в результате парсинга кода страницы. Построение
DOM и
CSSOM —
всего лишь часть процесса.
2. В свете этого можно переформулировать вопрос. Например так:
Как установить для элемента стили до его рендеринга на странице?
Правильно — в стилях. Можно в тех, что загружаются с сервера, а можно
создать их на лету. Поскольку парсер
HTML ожидает завершения обработки скрипта, а
head уже однозначно есть, то стиль будет создан и учтён при рендеринге страницы. Который, замечу, работает до наступлениясобытия
DOMContentLoaded.