封装一个兼容性方法getOrSetStyle(),用来获取或设置样式

封装一个兼容性方法getOrSetStyle(),用来获取或设置样式。

操作css有四种方式:三种常见操作(行间样式,内联样式,外联样式),第四种是脚本化css,看似很高大尚,其实就是间接的操作css。getOrSetStyle方法就是用来脚本化css的。前提是要搞懂以下三部分知识点:

1.什么是dom.style.prop?
答:这是用来读/写css行间样式的,没有兼容性问题,如果碰到像float这种的保留字属性时,直接在该属性前面加上css并首字母大写(dom.style.cssFloat)。如果碰到复合属性时必须拆解使用,将组合单词变成小驼峰式写法。注意:如果是写入操作,写入的值必须是字符串格式

2.什么是查询计算样式[window.getComputedStyle(ele,null).prop]?
答:
**a.**此方法在IE8及IE8以下不兼容
**b.**只读不可写
**c.**此方法是获取当前元素最终所展现的样式(也就是css权重计算完以后的样式),包括一些样式属性还没有设置的默认值,其中null是获取该元素伪元素的样式表
**d.**返回的计算样式的值都是绝对值(例如:em会转换成px),因为在计算机中会把像素作为基本单位,对于计算机来说和其它单位相比较,px也就是绝对值。

3.什么是查询样式[ele.currentStyle.prop]?
答:
**a.**IE独有的属性
**b.**只读不可写
**c.**返回的计算样式的值是没有经过转换的绝对值(之前是什么值,就获取到什么值)

上代码:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Demo</title>
</head>
<body>
	
	<script>
	function getStyle(dom,attr){
		if(dom.currentStyle){
			return dom.currentStyle[attr]
		}else{
			return window.getComputedStyle(dom,null)[attr]
		}
	}

	//封装getOrSetStyle()函数
	function getOrSetStyle(dom,attr,value){
		if(arguments.length == 2){//获取值
 			return getStyle(dom,attr);
		}else if(arguments.length == 3){//设置属性
			dom.style[attr] = value;
		}
	}
	
	</script>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值