js原生css修改,原生js获取、添加、修改_非行间css样式

在html中样式分为:浏览器默认样式,引用样式(link外部样式文件,stle标签定义样式)、行间样式(及节点style属性定义的样式)。这篇文章主要讲解使用原生js获取、添加非行间css样式。

#box{ width:300px; height:100px; background:#ff0; border:1px solid #0076FF;}

我们如何通过js获取box节点的高和border值呢?定义一个getStyle的方法,代码如下:

//获取非行间css样式

function getStyle(obj,attr){ //获取非行间样式,obj是对象,attr是值

if(obj.currentStyle){ //针对ie获取非行间样式

return obj.currentStyle[attr];

}else{

return getComputedStyle(obj,false)[attr]; //针对非ie

};

};

//使用

var b=document.getElementById('box');

console.log(getStyle(b,"height"));//获取元素的高100px

console.log(getStyle(b,"border"));//获取元素的boder显示为:1px solid rgb(0,118,255)

这里的getStyle只能获取,如果需要添加或者修改非行间css样式呢,这里定义一个方法,代码如下:

//为获取/添加css样式

function css(obj,attr,value){ //对象,样式,值。传2个参数的时候为获取样式,3个是设置样式

if(arguments.length == 2){ //arguments参数数组,当参数数组长度为2时表示获取css样式

return getStyle(obj,attr); //返回对象的非行间样式用上面的getStyle函数

}else{

if(arguments.length == 3){ //当传三个参数的时候为设置对象的某个值

obj.style[attr] = value;

};

};

};

//使用

var b=document.getElementById('box');

css(b,"background","#f0f");//把box的背景替换为#f0f

console.log(css(b,255)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值