zl程序教程

您现在的位置是:首页 >  前端

当前栏目

javaScript读取和设置文档元素的样式属性

JavaScript属性文档 设置 读取 元素 样式
2023-06-13 09:14:09 时间
首先我们先说一下样式表属性
1.内联样式即元素style属性里面设置的,级别最高
2.页面样式表定义即页面<style></style>里面定义的,级别次之
3.外部链接样式表文件
JavaScript获取和设置文档元素的css属性:
1.获取元素Style属性里面设置的样式属性,
document.getElementById(id).style.height;
有,则返回属性值;没有则返回空
IE和火狐皆然,只是有的属性值返回可能不一样,比如像颜色火狐返回rgb,而IE是返回十六进制数字
测试代码:
<scripttype="text/javascript">
functiongetCss(){
alert(document.getElementById("aaa").style.height);
alert(document.getElementById("aaa").style.backgroundColor);
alert(document.getElementById("aaa").style.width);
document.getElementById("aaa").style.backgroundColor=‘#dbdbdb";
//alert(myWidth);
}
</script>
<divid="aaa"class="bbb"style="height:20px;background-color:#FF0000;">
asdfasdfas
</div>
<inputtype="button"value="点击"onclick="getCss();"/>
2.有时候我们的样式可能有多个地方设置了,我们也不知道它到底是外部样式表属性起作品,还是在内联样式里面起作用,所以我们就需要获取当前页面渲染的属性值。这个在IE和FF里面有些不同:
示例代码片断:
IE:document.getElementById("aaa").currentStyle.height
FF标准:document.defaultView.getComputedStyle(aaa,null).getPropertyValue("height")
这两个属性是只读的,若要改变元素样式还得使用style,它直接写在元素style属性里面级别最高起作用
3.写一个兼容IE和FF的函数来调用
复制代码代码如下:

functiongetRealStyle(id,styleName){
varelement=document.getElementById(id);
varrealStyle=null;
if(element.currentStyle)
realStyle=element.currentStyle[styleName];
elseif(window.getComputedStyle)
realStyle=window.getComputedStyle(element,null)[styleName];
returnrealStyle;
}

调用:cur_height=parseInt(getRealStyle(CON_ID,"height"));
P.S:返回值通常会带有单位,需要使用parseInt函数提取数字,以方便后面的操作