javascript高级程序设计学习(五)------访问与修改Style样式

1. style对象 

     语法:   访问var sColor=oDiv.style.color     修改 oDiv.style.color="red";

    style对象属性的命名规则, color---->color  font-family-------->fontFamily  border-color---->borderColor;

     -moz-border-radius----->MozBorderRadius       (前面为css命名,后面为style对象属性)

     注:float比较特别,不符合上述命名规则 float---->styleFloat ( cssFloat  for  IE)

    另外一种方法是style的 getPropertyValue方法,不过IE8及以下都不支持这种方法。

   语法规则 访问 var sColor=oDiv.style.getPropertyValue("color");  var sFontFamily=oDiv.style.getPropertyValue("font-family");  传递的参数名与CSS命名一致。


2. 访问CSS内联或外联文件

DOM 中 document.styleSheets[0].cssRules

IE8及以下 document.styleSheets[0].rules;

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>DOM访问CSS文件</title>
<style type="text/css">
 div.hover{
	 background:skyblue;
 }
 div.out{
	 background:yellow;
 }
</style>
<script>
  function changeBg()
  {
	  var cssRule=document.styleSheets[0].cssRules||document.styleSheets[0].rules;
	  cssRule[1].style.background="red";
  }
</script>
</head>
<body>
   <div class="hover">b</div>
   <div class="out">b</div>
   <input type="button" onClick="changeBg()" value="ChangeColor"/>
</body>
</html>
上面这段代码在点击按钮后 第二个div的背景将从 黄色变成红色.


3. 最终样式

  最终样式,就是浏览器通过计算css文件,和style=" "中的样式得到的 最终显示出来的样式。

  在DOM支持较好的浏览器中用document.defaultVie.getComputedStyle(oTarget, null)访问,在IE中可以用oDiv.currentStyle访问,他们返回的对象访问的方式和上面的style对 象一 样,但此对象不能被赋值,只能被访问。


    有了上面这些知识,我们可以简单做javascript修改CSS样式:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>jquery CSS原理</title>
<script src="jquery-1.6.2.min.js"></script>
<script>
  function getFStyle(oTarget)
  {
	  return oTarget.currentStyle||
	  document.defaultView.getComputedStyle(oTarget,null);
  }
  function setStyle(oTarget,oCss)
  {
	  for(key in oCss)
	   {
		    oTarget.style[key]=oCss[key];
	   }
	   
  }  
//在下面的两种设置style方法执行后,在 chrome的javascript控制台工具中可以看到test,test2的style=""内容完全一样。说明jlQuery对象修改styl//e的方法就如上     没有看过jquery源代码,纯属个人猜测
  function test()
  {   
	try{  var oCss={"width":"300px","height":"200px","background":"yellow","float":"right"};
	
	 setStyle(document.getElementById("test"),oCss);
	 }catch(err){alert(err);}
	 $("#test2").css({"width":"300px","height":"200px","background":"yellow","float":"right"});
	
  }
</script>
</head>

<body>
 <div id="test" style="width:100px;border:1px solid lightblue;min-height:100px"></div>
 <div id="test2" style="width:100px;min-height:100px;border:1px solid green;"></div>
 <button id="btn" onClick="test()">点击修改CSS样式</button>
</body>
</html>


参考图书:<<javascript高级程序设计>>

                   

  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值