Нет, пока элемент не присоединен к DOM, он не будет иметь стиля.Или, по крайней мере, его вычисляемый стиль недоступен (предположительно потому, что он еще не визуализирован):
HTML:
<a href="#">Something</a>
CSS:
a {
color: purple;
}
JavaScript:
var body = document.getElementsByTagName('body')[0];
var a = document.createElement('a');
a.href = 'http://google.com/';
a.innerHTML = 'link to google';
console.log('color: ' + window.getComputedStyle(a,null).getPropertyValue('color'));
body.appendChild(a);
console.log('color: ' + window.getComputedStyle(a,null).getPropertyValue('color'));
JS Fiddle .
Если, однако, вы явно стилизуете элемент с помощью JavaScript, который добавляет к атрибуту style
созданного элемента, что информация о стиле доступна немедленно (хотя все еще не через getComputedStyle()
):
var body = document.getElementsByTagName('body')[0];
var a = document.createElement('a');
a.href = 'http://google.com/';
a.innerHTML = 'link to google';
a.style.color = 'green';
console.log('color: ' + a.style.color);
body.appendChild(a);
console.log('color: ' + a.style.color);
JS Fiddle .