js中获取元素属性、currentStyle与getComputedStyle的区别

                          js中获取元素属性

一、层叠样式表的是三种形式:

     1.内联样式:在HTML标签用style属性设置

          例如:<p style = "color : #456">内联样式</p>

     2.嵌入样式 :通过<head>标签内通过<style>标签设置

        <style type="text/css">

           p {color:#456}

        </style>

     3. 外部样式:通过<link>标签设置

        <link rel="stylesheet" href="path/style.css" type="text/css">

        p{{color:#456};

     区别:

          使用style只能获取元素的内联样式,内部样式和外部样式使用style是获取不到               的。

          currentStyle是兼容IE浏览器的兼容IE 6、7、8

          getComputedStyle与currentStyle作用相同,但是适用于opera、firefox,safari、           chrome。

二、getComputedStyle与currentStyle的注意事项

     1.getComputedStyle与currentStyle都是获取计算机获得的是计算机(浏览器)计算后

得到的结果。可以获取元素的最终样式,包括浏览器的默认值,而不像style只能获

取行间样式。不能获取复合样式如background属性值,只能获取单一样式,而

单一的样式不能进行做判断

2.获取的元素的属性不能有空格。

3.不能获取未设置的属性:不兼容

4.getComputedStyle(obj,任意值)

在FF新版本中只需要第一个参数,即操作对象,第二个参数写“false”也是大家

用的写法,目的是为了兼容老版本的火狐浏览器。

三、getComputedStyle与style的区别

1. getComputedStyle方法是只读的,只能获取样式,不能设置;而element.style

读能写。

2.getComputedStyle方法获取的是最终应用在元素上的所有CSS属性对象(即使没

CSS代码,也会把默认的都显示出来);而element.style只能获取元素style

性中的CSS样式。因此对于一个光秃秃的元素<p>getComputedStyle方法返回

对象中length属性值(如果有),而element.style就是0

四、getComputedStyle与currentStyle的兼容方法

代码如下:

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=gb2312">
        <title>js的练习</title>
        <style>
            div{ height:120px; width:100px; background:pink; }
        </style>
        <script>
            window.onload = function(){
                var oBtn = document.getElementById('btn1');
                var oDiv = document.getElementById('div1');
                oBtn.onclick = function(){
                    alert(getStyle(oDiv,'height'));
                    function getStyle(obj,attr){
                       
/*
                        if(obj.currentStyle){
                            return obj.currentStyle[attr];
                        }else{
                            return getComputedStyle(obj)[attr]; //用 if...else语句实现
                        }*/

                       
return obj.currentStyle?obj.currentStyle:getComputedStyle(obj)[attr]; 

//用三元运算实现 与if...else实现的效果相同,但更为简单
                    }
                }
            }
        </script>
    </head>
    <body>
        <input type="button" value="按钮" id="btn1" />
        <div id="div1"></div>
    </body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值