javascript 动态修改css样式方法

CSS

?
1
2
3
4
5
6
7
.style 1 { margin : 10px auto ; background-color : #9999FF ; display : block ; color :White; border : 1px solid white ; padding : 10px 25px ; font-size : 18px ; }
 
.style 1: hover{ background-color : #66B3FF ; cursor : pointer ;}
 
.style 2 { margin : 10px auto ; background-color : gray ; display : block ; color : black ; border : 1px solid white ; padding : 10px 25px ; font-size : 18px ; }
 
.style 2: hover{ background-color : black ; color :White; cursor : pointer }

HTML

?
1
2
3
4
5
6
7
8
9
< div >
  < input id = "btnB" type = "button" name = "btnLogin" value = "登录" class = "style1" />
  < div id = "tool" >
   < input type = "button" value = "【obj.style.className】更改样式" onclick = "changeBackgroundColor()" />
   < input type = "button" value = "【obj.style.cssText】更改样式" onclick = "changeFontSize()" />
   < input type = "button" value = "【obj.className】更改样式" onclick = "addRadius()" />
   < input type = "button" value = "更改外联css样式" onclick = "recover()" />
  </ div >
</ div >

方法一、使用obj.className来修改样式表的类名

从下面的代码可以看出ob.style.cssTest是如何来btnB的样式的。

?
1
2
3
4
5
function changeStyle1() {
   var obj = document.getElementById( "btnB" );
   obj.style.backgroundColor= "black" ;
 
}

该段代码修改btB的文字的颜色,在浏览器中打开调试工具,可以发现btB标签中多了一个属性【style="内联式>外联式。而btB的hove伪类的background-color样式写在内联式中,所以嵌入式的background-color覆盖了伪类中,这就使得鼠标放入btB上感觉不到背景颜色的变化。

方法二、使用obj.style.cssTest来修改嵌入式的css

直接上JavaScript代码:

?
1
2
3
4
5
function changeStyle2() {
    var obj = document.getElementById( "btnB" );
    obj.style.cssText = "background-color:black; display:block;color:White;
 
}

该段代码和【一】中的效果是一样的,缺陷也是一样。

方法三、使用obj.className来修改样式表的类名

使用代码来修改btB引用样式的类名,如下段代码:

?
1
2
3
4
5
function changeStyle3() {
   var obj = document.getElementById( "btnB" );
   //obj.className = "style2";
   obj.setAttribute( "class" , "style2" );
}

通过更改btB的css的类名的方式来更改样式,更改样式类名有两种方式。1、obj.className = "style2";  2、 obj.setAttribute("class", "style2");都是一样的效果。

用这种方式来修改css比上面的效果要好很多。

方法四、使用更改外联的css文件,从而改变元素的css

通过更改外联的css文件引用从而来更改btB的样式,操作很简单。代码如下:

首先得引用外联的css文件,代码如下:

?
1
2
3
4
5
6
<link href= "css1.css" rel= "stylesheet" type= "text/css" id= "css" />
 
function changeStyle4() {
    var obj = document.getElementById( "css" );
    obj.setAttribute( "href" , "css2.css" );
  }

这样也能方便的更改btB的样式,觉得这种方式是好用的,是实现整体页面换肤的最佳方案。


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风起未来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值