非標準の IE プロパティを使用することもできます。それ以外の場合は、利用可能な場合はDOM レベル 2標準メソッドelement.currentStyle
を探すことができます。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
のようなハイフンを含むプロパティは、 IE オブジェクトで camelCase (例: )font-size
としてアクセスする必要があるため、関数が追加されました。fontSize
currentStyle
document.defaultView
にアクセスする前にの存在を確認しgetComputedStyle
ます。
- 最後のケースを追加しました。
el.currentStyle
とgetComputedStyle
が利用できない場合、 経由でインライン CSS プロパティを取得しますelement.style
。