В дополнение к встроенному (т. е. добавленному через атрибут style) определению стиля, стиль CSS элемента также имеет два метода: css, встроенный в страницу, и css, введенный извне. Однако в JS через el.style.xxx можно получить только атрибуты встроенного стиля, что имеет относительно большие ограничения. К счастью, браузеры предоставляют другие способы получения атрибутов стиля, определенных другими способами. В IE есть currentStyle, FF и другие стандартные браузеры w3c, такие как getComputedStyle.
Для простоты работы многие текущие js-библиотеки инкапсулировали это, но во многих случаях нам не нужно вводить какую-либо библиотеку. Все, что нам нужно, — это функция getStyle для получения текущего определения стиля элемента. Обратившись к нескольким кодам JS-Lib, я решил реализовать упрощенную версию функции getStyle. Цель этой функции — удовлетворить большинство потребностей, обеспечить кроссбраузерность, лаконичный код и отличную производительность. Исходя из этих требований, мне потребовался час, чтобы сделать это, в основном я использовал несколько советов, таких как «Характеристики логических операторов JS, «компиляция кода» и мгновенное выполнение функций. Я написал это здесь для дальнейшего использования. может быть полезен любому другу, конечно, было бы лучше.
программный код
вар getStyle=function(){
вар f=document.defaultView;
вернуть новую функцию('el','style',[
"style.indexOf('-')>-1 && (style=style.replace(/-( \w)/g,function(m,a){return a.toUpperCase()}));",
"style=='float' && (style='",
е 'cssFloat': 'styleFloat',
"'); return el.style[стиль] || ",
f ? 'window.getComputedStyle(el, null)[стиль]': 'el.currentStyle[стиль]',
' || ноль;'].join(''));
}();
//Пример использования:
var el=document.getElementById('test');
getStyle(el,'line-height');
getStyle (эль, «цвет»);
getStyle(el,'float');
Откуда: http://www.ajaxbbs.net/post/webFront/JS-Get-Style-Function.html .