js获取元素具体样式属性值

1.元素.style.属性名

需要把元素的样式都写在行内样式上才可以(写在样式表中不起作用) 在真实项目中,这种方式不常用(无法实现css和html分离)

2.使用window.getComputedStyle这个方法获取所有经过浏览器计算过的样式

(只要当前的元素标签可以在页面中呈现出来,那么它的所有样式都是经过浏览器计算过的/渲染过的),哪怕有些样式没有写,我们也可以获取到 window.getComputedStyle(当前要操作的元素对象,当前元素的伪类[一般我们不用伪类写null])

console.log(window.getComputedStyle);
console.log(window.getComputedStyle(box,null));  //获取所有样式
console.log(window.getComputedStyle(box,null).height);

在ie6~8下不兼容,因为window下没有getComputedStyle这个属性
在ie6~8下可以使用currentStyle来获取所有经过浏览器计算过的样式
<span style="font-size:14px;">console.dir(box.currentStyle);</span>

3.getComputedStyle作用于伪类

<span style="font-size:14px;">var p1 = document.getElementById("boxP");
console.log(window.getComputedStyle(p1,"before").content);</span>

4兼容写法

<span style="font-family:SimSun;">function getCss(curEle,attr){
    var val = null,reg = null;
    if("getComputedStyle" in window){
        val = window.getComputedStyle(curEle,null)[attr];
    } else {   //ie6~8不支持上面属性
        //不兼容
        if(attr === "opacity"){
            val = curEle.currentStyle["filter"];   //'alpha(opacity=12,345)'
            reg = /^alpha\(opacity=(\d+(?:\.\d+)?)\)$/i;
            val = reg.test(val)?reg.exec(val)[1]/100:1;
        } else {
            val = curEle.currentStyle[attr];
        }
    }
    reg = /^(-?\d+(\.\d)?)(px|pt|em|rem)?$/i;
    return reg.test(val)?parseFloat(val):val;
}</span>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值