Além da definição de estilo inline (ou seja, adicionado por meio do atributo style), o estilo CSS de um elemento também possui dois métodos: css incorporado na página e css introduzido externamente. No entanto, em JS, apenas atributos de estilo embutido podem ser obtidos por meio de el.style.xxx, que possui limitações relativamente grandes. Felizmente, os navegadores fornecem outras maneiras de obter atributos de estilo definidos de outras maneiras. No IE, existem currentStyle, FF e outros navegadores padrão w3c, como getComputedStyle.
Para facilitar a operação, muitas js-libs atuais encapsularam isso, mas muitas vezes não precisamos introduzir nenhuma biblioteca. Tudo o que precisamos é de uma função getStyle para obter a definição de estilo atual do elemento. Depois de consultar vários códigos JS-Lib, decidi implementar uma versão simplificada da função getStyle. O objetivo desta função é atender à maioria das necessidades, ser compatível com vários navegadores, ter código conciso e ter excelente desempenho. Com base nesses requisitos, demorei uma hora para fazer isso. Usei principalmente várias dicas, como "características do operador lógico JS, "compilação" de código e execução instantânea de funções. Escrevi aqui para uso futuro., se for o caso. pode ser útil para qualquer amigo, claro que seria melhor.
código do programa
var getStyle=função(){
var f=document.defaultView;
return nova Função('el','estilo',[
"style.indexOf('-')>-1 && (style=style.replace(/-( \w)/g,function(m,a){return a.toUpperCase()}));",
"estilo=='float' && (estilo='",
f?'cssFloat': 'estiloFloat',
"');return el.style[estilo] || ",
f?'window.getComputedStyle(el, null)[estilo]': 'el.currentStyle[estilo]',
' || nulo;'].join(''));
}();
//Exemplo de uso:
var el=document.getElementById('teste');
getStyle(el,'altura da linha');
getStyle(el,'cor');
getStyle(el,'float');
De: http://www.ajaxbbs.net/post/webFront/JS-Get-Style-Function.html