Element.style özelliği, yalnızca o öğede satır içi olarak tanımlanan (programlı olarak veya öğenin stil özniteliğinde tanımlanan) CSS özelliklerini bilmenizi sağlar, hesaplanan stili almanız gerekir.
Çapraz tarayıcı bir şekilde yapmak o kadar kolay değil, IE element.currentStyle özelliği aracılığıyla kendi yoluna sahiptir ve diğer tarayıcılar tarafından uygulanan DOM Level 2 standart yolu document.defaultView.getComputedStyle yöntemidir.
İki yolun farklılıkları vardır, örneğin, IE element.currentStyle özelliği, camelCase'de iki veya daha fazla sözcükten oluşan CSS özellik adlarına erişmenizi bekler (örneğin, maxHeight, fontSize, backgroundColor, vb.), Standart yol özellikleri tire ile ayrılmış kelimeler (ör. maksimum yükseklik, yazı tipi boyutu, arka plan rengi, vb.). ......
function getStyle(el, styleProp) {
var value, defaultView = (el.ownerDocument || document).defaultView;
// W3C standard way:
if (defaultView && defaultView.getComputedStyle) {
// sanitize property name to css notation
// (hyphen separated words eg. font-Size)
styleProp = styleProp.replace(/([A-Z])/g, "-$1").toLowerCase();
return defaultView.getComputedStyle(el, null).getPropertyValue(styleProp);
} else if (el.currentStyle) { // IE
// sanitize property name to camelCase
styleProp = styleProp.replace(/\-(\w)/g, function(str, letter) {
return letter.toUpperCase();
});
value = el.currentStyle[styleProp];
// convert other units to pixels on IE
if (/^\d+(em|pt|%|ex)?$/i.test(value)) {
return (function(value) {
var oldLeft = el.style.left, oldRsLeft = el.runtimeStyle.left;
el.runtimeStyle.left = el.currentStyle.left;
el.style.left = value || 0;
value = el.style.pixelLeft + "px";
el.style.left = oldLeft;
el.runtimeStyle.left = oldRsLeft;
return value;
})(value);
}
return value;
}
}
Ana referans yığın akışı