JS获取元素样式之style、currentStyle、getComputedStyle

在js中获取元素的样式属性大多都是用ele.style.attr这种方式,但是这种方式是有局限性的,该方法只能获取到行内样式,获取不了外部样式。
如果要想获取元素的外部样式,可以选用currentStyle属性和getComputedStyle属性,但这两个属性不能设置样式,只能获取样式,而且这两个属性有其兼容性,具体来说:
currentStyle属性
用法:ele.currentStyle["attr"]ele.currentStyle.attr
特点:该属性只兼容IE,不兼容火狐和谷歌
getComputedStyle属性
用法:window.getComputedStyle(ele,null)[attr]window.getComputedStyle(ele,null).attr
(两个参数,元素和伪类。第二个参数不是必须的,当不查询伪类元素的时候可以忽略或者传入 null)
特点:该属性是兼容火狐谷歌,不兼容IE8及以下(IE9及以上版本可兼容)
基于此,我们可以写一个兼容性的方法来获取元素样式:

function getCss(element, attr) {
   if (window.getComputedStyle) {
    return attr?window.getComputedStyle(element, null)[attr]:window.getComputedStyle(element, null);
   }
  return attr?element.currentStyle[attr]:element.currentStyle;
}

var oBox = document.getElementById("box");
getCss(oBox,"font-size");

style,currentStyle和getComputedStyle的区别

操作特点
style1.各大浏览器都兼容,能设置样式和获取样式;
2.获取不了外部样式,如果写了行内没有的样式,返回的是空值
currentStyle1.该属性只兼容IE,不兼容火狐和谷歌;
2.该属性不能设置样式,只能获取样式
getComputedStyle1.该属性是兼容火狐谷歌,不兼容IE8及以下(IE9及以上版本可兼容);
2.该属性不能设置样式,只能获取样式
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值