DOM脚本设置样式

       currentStyle,getComputedStyle


1. 网页由三层信息构成的一个共同体:

           1)结构层(由HTML或XHTML之类的标记语言创建)

           2)表现层(由css负责完成,页面呈现的效果)

            3)行为层(负责内容该如何响应事件这个问题)

以下例子皆在此背景下:

<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>样式设置</title>
	<style>
		#box {
			width: 100%;
			height: 100px;
			color: #fff;
			font-size: 30px;
			border: 1px solid navy;
		}
	</style>
</head>
<body>
	<div id="box" style="background-color: red;">样式设置</div>
	
</body>
</html>


       2.style属性:每一个元素节点都会有一个style属性,style属性包含元素的样式,查询这个样式将会返回一个 

           对 象,而不是一个简单的字符串。样式都存放在这个style对象的属性里。

            
             var myDiv = document.querySelector("#box");
	     console.log(myDiv.style);//获取CSSStyleDeclaration对象
3.获取样式:
1)element.style.property(property名字中,不管有多少个字符,DOM一律采用驼峰命名法 例如:fontSize)
    myDiv.style.fontSize = "orange";


但是上述的方法,局限性很大,通过style属性只能获取行间样式(内嵌样式),在外部声明的样式不会进入style对象,即使是在heade标签内声明的样式也会如此。
2)使用js操作获取样式:
IE浏览器:element.currentStyle方法
其它:getComputedStyle(elem , peroperty)方法
        //IE浏览器
		console.log("IE浏览器下获取width值" + myDiv.currentStyle['width']);
		// 标准浏览器 window.getComputedStyle(element,false)["color"]; false处可以用null
		console.log("标准浏览器获取width值" + window.getComputedStyle(myDiv,false)['width']);


3)兼容浏览器的方法
       //兼容浏览器获取样式
		function getStyle(elem , name){
			//name是指属性名
<span style="white-space:pre">		</span>if(){
<span style="white-space: pre;"></span><pre name="code" class="html" style="font-size: 14px; text-indent: 56px;"><span style="white-space:pre">			</span>if(elem.currentStyle){
				<span style="white-space:pre">	</span>return elem.currentStyle[name];
			<span style="white-space:pre">	</span>}else{
				return window.getComputedStyle(elem , false)[name];
			<span style="white-space:pre">	</span>}
<span style="white-space: pre;">		</span>  }
 
  
	    }
4)DOM2级样式增强了document.defaultView,提供了getComputedStyle()方法。这个方法接受两个参数:要取得计算样式的元素和一个伪元素字符串(例如“:after”)。如果不需要伪元素信息,第二个参数可以是null。getComputerStyle()方法返回一个CSSStyleDeclaration对象,其中包含当前元素的所有计算的样式(做到全部IE和标准都兼容)。
console.log(document.defaultView.getComputedStyle(myDiv , false));


3.设置样式:
1)style属性都是可读写的,可以使用赋值的方法
2)在js中可以使用元素节点的className属性进行修改样式,它是一个可读/可写的属性。凡是元素节点都有这个属性,可以直接给它赋值,但是是替换所有类,而不是追加。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值