js改变css样式

时间:2022-08-03 16:09:45
 

CreateTime--2017年10月31日15:14:12

Author:Marydon

js改变css样式

1.js改变单个css样式

  HTML部分

<div id="test" style="display:none">测试js改变单个css样式</div>

  JAVASCRIPT部分

document.getElementById('test').style.display = 'none';

2.js改变多个css样式

  HTML部分

<div id="test">测试js改变多个css样式</div>

  方法一:通过操作style属性实现

$get("test").style.height = '100px';
$get("test").style.width = '100px';
$get("test").style.border = '1px solid red';

  方法二:通过cssText属性实现(推荐使用)

$get("test").style.cssText = "height:100px;width:500px;border:1px solid red;";

  说明:需要通过js改变多个css样式时,推荐使用第二种方式

  注意:使用cssText有2个注意事项

  a.会覆盖之前的样式;

  举例:

<div id="test" style="height:100px;width:500px;border:1px solid red;">测试cssText</div>

  效果:想在此基础上加个背景色

$get("test").style.cssText = "background-color:yellow;"  

  结果:但是实现效果却是加上了背景色,其他样式被覆盖掉了

  b.ie8及ie8以下结尾没有分号。

  通过cssText属性给标签设置行内样式时, ie8及ie8以下浏览器会自动去掉样式中的最后一个封号

  解决方案:使用cssText时应该采用叠加的方式以保留原有的样式  

var cssText = $get("test").style.cssText;
// 不以;号结尾
if(cssText.lastIndexOf(';') != cssText.length - 1) {
cssText += ";"
}
cssText += "background-color:yellow;color:green;";
// 追加多个样式
$get("test").style.cssText = cssText; 

小结:

  使用js改变单个css样式,通过调用style属性来实现;

  使用js改变多个css样式,通过调用cssText属性来实现,注意避免bug的出现。

3.js改变名称带有-的样式

  使用javascript操作CSS样式时,遇到样式名称中带有-的,第二个首字母大写即可  

$get("test").style.backgroundColor = "yellow";