用js如何获取div中css的
margin、padding、height、border等。你可能说可以直接用documentgetElementById("id")stylemargin获取。但是你说的只能获取直接在标签中写的style的属性,无法获取标签style外的属性(如css文件中的属性)。而下面方法则两者值都可以获取。
实例效果图如下:
js在获取css属性时如果标签中无style则无法直接获取css中的属性,所以需要一个方法可以做到这点。
getStyle(obj,attr)
调用方法说明:obj为对像,attr为属性名必须兼容js中的写法(可以参考:JS可以控制样式的名称写法)。
Js代码
复制代码
代码如下:
function
getStyle(obj,attr){
var
ie
=
!+"\v1";//简单判断ie6~8
if(attr=="backgroundPosition"){//IE6~8不兼容backgroundPosition写法,识别backgroundPositionX/Y
if(ie){
return
objcurrentStylebackgroundPositionX
+"
"+objcurrentStylebackgroundPositionY;
}
}
if(objcurrentStyle){
return
objcurrentStyle[attr];
}
else{
return
documentdefaultViewgetComputedStyle(obj,null)[attr];
}
}
用documentgetElementById(‘element’)stylexxx可以获取元素的样式信息,可是它获取的只是DOM元素style属性里的样式规则,对于通过class属性引用的外部样式表,就拿不到我们要的信息了。
DOM标准里有个全局方法getComputedStyle,可以获取到当前对象样式规则信息,如:getComputedStyle(obj,null)paddingLeft,就能获取到对象的左内边距。但是IE不支持此方法,它有自己的一个实现方式,那就是currentStyle,不同于全局方法getComputedStyle,它是作为DOM元素属性存在的,如:objcurrentStylepaddingLeft,在IE中就获取到对象的左内边距了,兼容性的写法如下:
return windowgetComputedStyle windowgetComputedStyle(obj,null)paddingLeft : objcurrentStylepaddingLeft;
以上就是关于js获取某元素的class里面的css属性值代码全部的内容,包括:js获取某元素的class里面的css属性值代码、js怎么获取css设置的样式、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)