Javascript读取元素的样式

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>05_读取元素的样式</title>
		<style type="text/css">
			#box1{
				width:300px;
				height:200px;
				background-color:yellow;
			}
		</style>
		
		<script type="text/javascript">
			window.onload = function(){
				
				// 点击按钮以后读取box1的样式
				var box1 = document.getElementById("box1");
				var btn01 = document.getElementById("btn01");
				btn01.onclick = function(){
					// 读取box1的宽度
					// alert(box1.style.width);
					
					/*
					获取元素的当前显示的样式
					  语法:元素。currentStyle .样式名
					它可以用来读取当前元素正在显示的样式
					  如果当前元素没有设置该样式,则获取它的默认值
					currentStyle只有IE浏览器支持,其他的浏览器都不支持

					*/
				   // alert(box1.currentStyle.width);
				   // alert(box1.currentStyle.backgroundColor);
				   
				   /*
				   在其他浏览器中可以使用
				     getComputedStyle( )这个方法来获取元素当前的样式
				     这个方法是window的方法,可以直接使用
				   需要两个参数
				     第一个: 要获取样式的元素
				     第二个:可以传递一一个伪元素,一 般都传null
				   该方法会返回一个对象,对象中封装了当前元素对应的样式
					 可以通过对象.样式名来读取样式
					 如果获取的样式没有设置,则会获取到真实的值,而不是默认值
					 比如:没有设置width,它不会获取到auto,而是一个长度
					
					但是该方法不支持工E8及以下的浏览器
					
					通过currentSty1 e和getComputedStyle( )读取到的样式都是只读的,
					不能修改,如果要修改必须通过style属性

				   */
				  var obj = getComputedStyle(box1,null);
				  
				  // alert(getComputedStyle(box1,null).width);
				  // 正常浏览器的方式
				  // alert(getComputedStyle(box1,null).backgroundColor);
				  
				  // IE8的方式
				  // alert(box1.currentStyle.backgroundColor);
				  
				  // alert(getStyle(box1,"width"));
				};
			};
			
			/*
			定义一个函数,用来获取指定元素的当前的样式
			参数:
			  obj要获取样式的元素
			  name要获取的样式名

			*/
		   function getStyle(obj,name){
			   
			   if(window.getComputedStyle){
				   //正常浏览器的方式,具有getComputedStyle()方法
				   	return getComputedStyle(obj,null)[name];
			   }else{
				   // IE8方式,没有getComputedstyle( )方法
				   return obj.currentStyle[name];
			   }
			   return window.getComputedStyle?getComputedStyle(obj,null)[name]:obj.currentStyle[name];
		   }
		</script>
	</head>
	<body>
		<button id="btn01">点击</button>
		<br/><br/>
		<div id="box1"></div>
	</body>
</html>

效果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值