外部引用css属性在Javascript里如何获取

今天做封装一个库的时候发现:想获取节点的CSS属性,如果没有写行内style样式,而是通过link写的,我们在javascript里想要通过.style.属性,是获取不到的。

在网上查找了一下,W3C下提供了一个方法:window.getComputedStyle()可以得到节点的计算后样式,该方法有两个参数,第一个是要所要获取的样式的节点,第二个参数不知道是什么作用,网上给出的例子都将设置成null;即是这样调用的:window.getComputedStyle(node,null),其返回值为一个对象,为计算后的样式的属性值对的集合。

但是IE浏览器中不支持该方法,不过在IE中,元素节点有一个属性对应的也是该节点计算后的方法,例如,在IE中节点node计算后的样式为:node.currentStyle,该属性是一个对象,也是计算后的样式的属性值对的集合。为了兼容性我们可以将其封装改写一下,提供一个统一的方法getCurrentStyle(node)

给出示例:

// 参数node:将要获取其计算样式的元素节点
function getCurrentStyle(node) {
    var style = null;

    if(window.getComputedStyle) {
        style = window.getComputedStyle(node, null);
    }else{
        style = node.currentStyle;
    }

    return style;
}

以下代码是获取其中div的display的样式属性值:

 1 <div id="div">div节点</div>
 2
 3
 4 <script>
 5 var div = document.getElementById("div");
 6 var style = getCurrentStyle(div);
 7 var display = style["display"];
 8
 9 alert(display);    // 输出:block
10 </script>
时间: 2024-08-08 01:28:27

外部引用css属性在Javascript里如何获取的相关文章

jQuery操作CSS属性的相关方法

1.前言 jQuery提供了以下几种操作DOM元素CSS样式的方法,包括直接访问.修改DOM元素的class属性值,还提供了访问.修改DOM元素内联CSS属性值的方法,除此之外还提供了大量直接访问.修改DOM元素大小和位置的方法. jQuery提供的操作CSS属性的相关方法如下. 1)        addClass(class):将指定的CSS定义添加到jQuery对象包含的所有DOM对象上. 2)        hasClass(class):判断该jQuery对象是否包含至少一个具有指定C

CSS initial 关键字,用于设置 CSS 属性为它的默认值

CSS initial 关键字 实例 设置 <div> 元素内的文本颜色为红色,但是为 <h1> 元素保持最初的颜色: div {color: red; }h1 {color: initial; } 浏览器支持 除了 Internet Explorer,其他的主流浏览器都支持 initial 关键字. Opera 15 之前的版本不支持 initial 关键字. 定义和用法 initial 关键字用于设置 CSS 属性为它的默认值. initial 关键字可用于任何 HTML 元素

javascript操作html元素CSS属性

下面先记录一下JS控制CSS所使用的方法. 1.使用javascript更改某个css class的属性... <style type="text/css"> .orig { display: none; } </style> 你想要改变把他的display属性由none改为inline. 解决办法: 在IE里: document.styleSheets[0].rules[0].style.display = "inline"; 在firef

JS里引用CSS属性时候的命名

????如果JS代码中设置<p>元素的另一个CSS属性font-family.这个属性的获取方式与color属性略有不同,因为 font和family之间的连字符与JS中减法操作符相同,JS会把它解释为减号.如果你像下边这样访问名为 font-family 的属性,会收到一条出错信息: ????Element.style.font-family ????JS将减号前边的内容解释为"元素的style属性的font属性",把减号后的内容解释为一个名为family的变量,将整个表

用JavaScript修改CSS属性的代码

用JavaScript修改CSS属性的代码 作者: 字体:[增加 减小] 类型:转载 时间:2013-05-06我要评论 这篇文章主要介绍用原生的javascript修改CSS属性的方法,需要的朋友可以参考下 用JavaScript修改CSS属性 只有写原生的javascript了. 1.用JS修改标签的 class 属性值: class 属性是在标签上引用样式表的方法之一,它的值是一个样式表的选择符,如果改变了 class 属性的值,标签所引用的样式表也就更换了,所以这属于第一种修改方法. 更

jquery学习 - jquery选择孩子元素和个数/获取css属性

选择器 选择孩子元素和css属性 获得孩子元素的个数 选择器 jquery的选择器很强大,可以的话,能用jquery的时候,真的是非常方便. 选择孩子元素和css属性 先看下面的代码: SelectColor = $(ColorId).children('svg').children('rect').css('fill'); 这个代码很容易懂.首先: ColorId = $("#id"); svg是一个子元素的标签. rect是svg下的子元素 fill是rect的一个css属性 可以

JS获取CSS属性值

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <ti

getComputedStyle currentStyle 获取当前元素所有最终使用的CSS属性值

object.getComputedStyle  获取当前元素所有最终使用的CSS属性值.返回的是一个CSS样式声明对象,只读,不能设置. 此方法不兼容IE8及以下,需用currentStyle方法. function getStyle(obj.attr){ return getComputedStyle(obj)?getComputedStyle(obj)[attr]:obj.currentStyle[attr]; //判断是否有getComputedStyle方法 } obj为需要获取属性值

JavaScript中的CSS属性对照表

JavaScript中的CSS属性对照表(新手必备) JavaScript中的CSS属性对照表是js初学者必备的基础知识 盒子标签和属性对照 CSS语法 (不区分大小写) JavaScript语法 (区分大小写) border border border-bottom borderBottom border-bottom-color borderBottomColor border-bottom-style borderBottomStyle border-bottom-width border