При попытке получить значение CSS свойства, возвращается пустая строка

Когда столкнулся с этой проблемой, не понимал в чём дело. Вроде свойство задано, но при попытке получить, пустая строка.
Как выяснилось, объект style элемента содержит только значения, явно заданные в атрибуте style в тэге элемента.
Если Вы задаёте CSS свойства через тэг <STYLE></STYLE> или внешние листы стилей, то они не будут присутствовать в объекте style элемента.

Как узнать значение свойства элемента, если оно не задано явно в атрибуте style элемента?

function getElementStyle(element, property)
{
	if (typeof element!="object") element = document.getElementById(element);

	// внешние стили в Мазиле, Сафари и Опере
	if (document.defaultView  &&document.defaultView.getComputedStyle)
	{
		if (property.match(/[A-Z]/)) property = property.replace(/([A-Z])/g, "-$1").toLowerCase();
		return document.defaultView.getComputedStyle(element, "").getPropertyValue(property);
	}
	
	// внешние стили в IE
	if (element.currentStyle)
	{
		var i;
		while ((i=property.indexOf("-"))!=-1) 
			property = property.substr(0, i) + property.substr(i+1,1).toUpperCase() + property.substr(i+2);
		return element.currentStyle[property];
	}
	
	return "";
}

Функция принимает два аргумента: id элемента (или сам элемент) и название свойства.

  Категории: css