JavaScript скрипты
Как получить значение CSS свойства из внешнего файла
одержит только те значения, которые были заданны явно в атрибуте style в тэге элемента или были предварительно назначены через скрипт. Если Вы задаёте CSS свойства через тэг или внешние листы стилей, то они не будут присутствовать в объекте style элемента. Возникает вопрос, как узнать вычисленное значение свойства элемента, если оно не задано в атрибуте style элемента и не было инициализировано через скрипт? Воспользуйтесь функцией (работает начиная с NN 6, IE 5, Opera 7):
function getElementComputedStyle(elem, prop) { if (typeof elem!="object") elem = document.getElementById(elem); // external stylesheet for Mozilla, Opera 7+ and Safari 1.3+ if (document.defaultView && document.defaultView.getComputedStyle) { if (prop.match(/[A-Z]/)) prop = prop.replace(/([A-Z])/g, "-$1").toLowerCase(); return document.defaultView.getComputedStyle(elem, "").getPropertyValue(prop); } // external stylesheet for Explorer and Opera 9 if (elem.currentStyle) { var i; while ((i=prop.indexOf("-"))!=-1) prop = prop.substr(0, i) + prop.substr(i+1,1).toUpperCase() + prop.substr(i+2); return elem.currentStyle[prop]; } return ""; }
Функция принимает два аргумента: id элемента или сам элемент и название свойства в формате W3C/CSS или аналогичное название свойства в JavaScript нотации (в таком же виде в котором вы его указываете при доступе через объект style). Примеры:
var color = getElementComputedStyle("elemID", "color"); var elem = document.getElementById("elemID"); var bg = getElementComputedStyle(elem, "background-color"); //или так var bg = getElementComputedStyle(elem, "backgroundColor");