getStyle(obj, attr)兼容获取css

设置元素(element)的css属性值可以用element的style属性,dom.style.attr  这样或取得到的值大多数是undefined;何解?

dom.style.attr  是用来获取内联样式的,现在网页基本都是外链样式表这样获取不到值;所以只能是undefined;

那该如何获取,或者设置其样式呢?下边有一个getStyle()方法:

<script>
function getStyle(obj, attr)
{
if(obj.currentStyle)
{
return obj.currentStyle[attr];
}
else
{
return getComputedStyle(obj,false)[attr];
}
}
window.onload=function(){
var aaa=document.getElementById("DIV1");
alert(getStyle(DIV1,‘width‘))
}
</script>

这样在获取的时候就可以了。

时间: 2024-11-02 19:46:19

getStyle(obj, attr)兼容获取css的相关文章

js 获取css 样式

style只能获取元素的行间样式. 原生代码获取css里的样式,currentStyle只适用于IE,getComputedStyle适用于FF.opera.safari.chrome. function getStyle ( obj, attr ) { return obj.currentStyle?obj.currentStyle[attr] : getComputedStyle( obj )[attr]; } js 获取css 样式

js函数arguments与获取css样式方法

函数传参,当参数的个数不定时,可以使用arguments arguments.length=实参个数 获得css样式方法: getComputedStyle()方法---->得到的是计算机计算后的样式(多次修改之后的最终样式),IE 6 7 8下兼容 style.属性   ----->操作的是元素内嵌样式,得到是内嵌样式的属性 currentStyle ----->标准浏览器不兼容 注意: 不能获取复合样式.例如 :backgroud:url() color .... 单一样式不要用来做

js中获取css样式属性值

关于js中style,currentStyle和getComputedStyle几个注意的地方 (1)用js的style只能获取元素的内联样式,内部样式和外部样式使用style是获取不到的. (2)currentStyle可以弥补style的不足(可获取内联样式,内部样式和外部样式),但是只适用于IE. (3)getComputedStyle同currentStyle作用相同,但是适用于FF.opera.safari.chrome. 注意: ① currentStyle和getComputedS

js中style,currentStyle和getComputedStyle的区别以及获取css操作方法

一.style,currentStyle和getComputedStyle的区别 <script>  function getStyle(obj, attr)   {       if(obj.currentStyle)       {          return obj.currentStyle[attr];  //只适用于IE     }       else       {          return getComputedStyle(obj,false)[attr];   //

js用currentStyle和getComputedStyle获取css样式(非行间)

用js的style属性可以获得html标签的样式,但是不能获取非行间样式.那么怎么用js获取css的非行间样式呢?在IE下可以用currentStyle,而在火狐下面我们需要用到getComputedStyle.下面是一个小示例: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/ht

js兼容获取元素的样式

js获取元素的样式的兼容性处理: function getStyle(obj,attr){ return obj.currentStyle?obj.currentStyle[attr]:getComputedStyle(obj)[attr]; } 使用方法: 如需要获取id为Div1的left值,就可以写成: var oDiv = document.getElementById("div1"); getStyle(oDiv,"left"); 就可以获取到这个div的

js获取css样式封装

封装 function getStyle(obj , attr){ return obj.currentStyle?obj.currentStyle[attr]:getComputedStyle(obj)[attr]; //兼容写法IE:火狐 }; 效果如下: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name=&qu

js用currentStyle和getComputedStyle获取css样式(非行间) 兼容ie与火狐

用js的style属性可以获得html标签的样式,但是不能获取非行间样式.那么怎么用js获取css的非行间样式呢?在IE下可以用currentStyle,而在火狐下面我们需要用到getComputedStyle.下面是js代码. function getStyle(obj, name) { if(obj.currentStyle) { return obj.currentStyle[name]; } else { return getComputedStyle(obj,false)[name];

js获取css的各种样式并且设置他们

js原生获取css样式,并且设置,看似简单,其实并不简单,我们平时用的ele.style.样式,只能获取内嵌的样式,但是我们写的样式基本都在style属性里面; 这里我们就需要: 下面这个代码主要是设置为了兼容IE这孙子; function getStyle(element, attr) { if (element.currentStyle) { return element.currentStyle[attr];//傻逼IE的获取元素的方法 } else { return getCompute