分享

JS控制CSS

 yfm10 2010-01-29

JS控制CSS

JS   2009-07-30 15:09   阅读142   评论0  
字号:     

  近排看了下JS,顺便也看了下CSS,然后突然想试一下JS控制CSS,毕竟将来可能会用到,上网查了下得到如下信息:

一赋值方式 :     用法:元素(节点).style.css属性 
只不过css属性写法特殊点 
一个单词的就直接写,中间用横杠的前一个开头字母小写,后一个开头字母大写,不用横杠链接 
还有几个特殊,比如常见的css的float属性要写成 
document.getElementById("div01").style.cssFloat; 
因为float是js保留字。 
其他的没是区别了 
document.getElementById("div01").style.height; 
document.getElementById("div01").style.lineHeight; 
document.getElementById("div01").style.backgroundColor;

下面写了个深入一点的例子,自定义一个对象里面存放所需的CSS属性,然后利用这些属性设置当前节点样式:

function changeCss(){
    var s={backgroundColor:"#0099FF",width:"40px"};//包含了CSS属性
    var node=document.getElementById("a");获取节点
    for(var c in s){
      eval("node.style."+c+"=s[c]");//原本执行是这样的:node.style.proName=s[c];但由于proName(属性名)是未知的需要遍历s对象获取,所以需要使用eval函数,通过这个函数,存入的字符串可以当表达式执行,这是个很实用的方法哦!
    }
  }

二、利用节点的className属性改变其CSS

再有一种方式就是通过控制标签的class属性,用于更改整个CSS样式,用法:

<font id="a">aa</font>

/////////////////////////////////////////////////

<style id="css" type="text/css">

  .css{

     background:red;

   }

</style>

////////////////////////////////////////////////////

var node=document.getElementById("a");

node.className="css";

三、获取节点相关的CSS属性值

以上方式可以说都是向CSS设置值或更改CSS,如何获取当前节点的CSS样式属性值呢?查了很久终于查到:

IE下:node.currentStyle['属性名']

hh下:document.defaultView.getComputedStyle (node,null)['属性名'];

网上一个比较方法是:

function GetCurrentStyle (obj, prop) {

  if(obj.currentStyle){

    return obj.currentStyle[prop];

  }

else if (window.getComputedStyle) { 

 

propprop = prop.replace (/([A-Z])/g, "-$1");           

propprop = prop.toLowerCase ();        

return document.defaultView.getComputedStyle (obj,null)[prop];     

}

}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多