Thuộc tính Element.style cho phép bạn chỉ biết các thuộc tính CSS được xác định là nội tuyến trong phần tử đó (theo chương trình hoặc được xác định trong thuộc tính kiểu của phần tử), bạn sẽ có được kiểu tính toán.
Không dễ để thực hiện theo cách đa trình duyệt, IE có cách riêng của mình, thông qua thuộc tính Element.civerseStyle và cách tiêu chuẩn DOM Cấp 2, được các trình duyệt khác triển khai là thông qua phương thức document.defaultView.getComputingStyle.
Hai cách có sự khác biệt, ví dụ, thuộc tính IE Element.civerseStyle mong đợi rằng bạn truy cập vào tên thuộc tính CSS gồm hai hoặc nhiều từ trong camelCase (ví dụ: maxHeight, fontSize, backgroundColor, v.v.), cách tiêu chuẩn mong đợi các thuộc tính với các từ được phân tách bằng dấu gạch ngang (ví dụ: chiều cao tối đa, cỡ chữ, màu nền, v.v.). ......
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;
}
}
Luồng ngăn xếp tham chiếu chính