Вы можете попробовать использовать нестандартное свойство IE element.currentStyle
, в противном случае вы можете искать DOM Level 2 стандартный getComputedStyle
метод если доступно:
function getStyle(el,styleProp) {
var camelize = function (str) {
return str.replace(/\-(\w)/g, function(str, letter){
return letter.toUpperCase();
});
};
if (el.currentStyle) {
return el.currentStyle[camelize(styleProp)];
} else if (document.defaultView && document.defaultView.getComputedStyle) {
return document.defaultView.getComputedStyle(el,null)
.getPropertyValue(styleProp);
} else {
return el.style[camelize(styleProp)];
}
}
Использование:
var element = document.getElementById('elementId');
getStyle(element, 'font-size');
Дополнительная информация:
Редактировать: Благодаря @ Crescent Fresh , @ kangax и @ Pekka за комментарии.
Изменения:
- Добавлена функция
camelize
, поскольку к свойствам, содержащим переносы, например font-size
, необходимо обращаться как camelCase (например: fontSize
) для объекта currentStyle
IE.
- Проверка существования
document.defaultView
перед доступом к getComputedStyle
.
- Добавлен последний случай, когда
el.currentStyle
и getComputedStyle
недоступны, получить встроенное свойство CSS через element.style
.