关于cssText

给HTML元素设置css属性,可能是这样的

  1. obj.style.width='200px';

  2. obj.style.height='200px';

  3. obj.style.border='1px solid red';

复制代码



这样是可以写,但是比较麻烦,同常这个时候都会写个工具函数

  1. function setStyle(obj,css){

  2.       for(var arrt in css){

  3.      obj.style[atr] = css[attr];

  4.     }

  5. var oDiv=document.getElementById('div1');

  6. setStyle(oDiv,{width:'200px',height:;200px',border:'1px red solid'})

  7. }

复制代码


但在这个时候,可以直接使用cssText,一行即可;并且兼容各个浏览器,如:

  1. obj.style.cssTest='width:200px,height:200px,border:1px solid red';

复制代码


其实它和innerHTML一样,好用且兼容所有浏览器,但是,它也有一个缺点,就是覆盖之前的样式,比如
<div style='color:red'>box</div>
但此时想添加个width属性,即
oDiv.style.cssTest='width:200px';
虽然width应用上了,但是color被覆盖了。
所有为了解决这个问题,可以使用累加cssText的方法 即:
oDiv.style.cssText+='width:200px';
但到了这里,使用该方法在IE9/Firefox/Safari/Chrome/Opera中没什么问题,但由于 IE6/7/8中cssText返回值少了分号 会让你失望;
所以,应该这样写:oDiv.style.cssText+=';width:200px';


你可能感兴趣的:(关于cssText)