获取元素的 CSS 属性

获取元素的 CSS 属性


(1)使用 HTMLElement.style.属性名

MDN 详解

HTMLElement.style 属性返回一个 CSSStyleDeclaration 对象(只读),该对象包含元素的内联 style 属性(attribute),但忽略任何样式表的属性。

CSS 属性列表:CSS Properties Reference

需要我们把元素的样式都写在行内样式上才可以(写在样式表中是不管用的)

console.log(ele.style.height);
  • 设置 style 属性

因为CSSStyleDeclaration对象是只读的,所以不能直接给 style 赋值:如:elt.style = "color: blue;";而应该通过单独的样式属性设置:如:elt.style.color = 'red';

  • 该方法只能获取内嵌样式,如果要获取所有的 css 属性样式,应该使用getComputedStyle方法;

(2)使用 window.getComputedStyle

MDN 详解

  • 语法:let style = window.getComputedStyle(element, [pseudoElt]);

或者:let style = document.defaultView.getComputedStyle(element, [pseudoElt]);

关于这两种写法的区别:两种方式是一样的,只有一种情况,必须使用 defaultView,那是在 firefox3.6 上访问子框架内的样式;

  • 参数:

element:获取计算样式的元素;

pseudoElt(可选):指定一个要匹配的伪元素的字符串。必须对普通元素省略(或 null);

  • 返回值:(只读)

返回的 style 是一个实时的 CSSStyleDeclaration 这个对象的实例,包含了当前元素的所有样式属性及其值;

当元素的样式更改时,该实例会自动更新;

console.log(window.getComputedStyle); //function
console.log(window.getComputedStyle(curEle, null))["height"];

兼容处理

  • 兼容问题:

getComputedStyle方法在 IE6-8 下是不兼容的,可以使用 currentStyle 来获取计算样式:

console.log(ele.currentStyle);
console.log(ele.currentStyle.height);
  • 封装函数:

getCss:获取当前元素所有经过浏览器计算过的样式中的[attr]对应的值

/*
*curEle:当前元素
*attr:属性
*/
function getCss(curEle, attr){
            return curEle.currentstyle ?
            curEle.currentstyle[attr] :
            document.defaultView.getComputedStyle(curEle, null)[attr];
        };
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值