在对网页进行调试的过程中,经常会用到js来获取元素的CSS样式,

1.下面的方法只能JS只能获取写在html标签中的写在style属性中的值(style=”…”),而无法获取定义在<style type="text/css">里面的样式属性值

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>JS获取CSS属性值</title>
<style type=”text/css”>
#css{color:blue;}
</style>
</head> <body>
<div id="css" class="ss" style="width:100px;height:150px;background:red">JS获取CSS属性值</div> <script>
alert(document.getElementById("css").style.width); //100px
alert(document.getElementById("css").style.height); //150px
alert(document.getElementById("css").style.color); //弹出空白,获取不到type=”text/css”里的属性值
</script>
</body>
</html>

代码运行后,顺利弹出第一个div的宽度、高度,但是最后一个文字颜色却弹出空白。

之前很多朋友可能认为dom.style属性无所不能,不但能设置元素的样式,也能够获取到对应的样式值。

然而事实是,dom.style只能够获取通过如下方式设置的CSS属性值:

(1).HTML标签的style属性设置CSS属性值。

(2).dom.style.width="100px"这样类似设置CSS属性值。

此时,getComputedStyle方法的功能得以体现,它可以获取元素CSS属性的最终计算值。

2.IE中使用的是obj.currentStyle方法,其他浏览器用的是getComputedStyle 方法 

TIP:所有浏览器均支持此方法,IE9+浏览器支持此方法。

“DOM2级样式”增强了document.defaultView,提供了getComputedStyle()方法。这个方法接受两个参数:要取得计算样式的元素和一个伪元素字符串(例如“:after”)。如果不需要伪元素信息,第二个参数可以是null。getComputerStyle()方法返回一个CSSStyleDeclaration对象,其中包含当前元素的所有计算的样式。

  window.getComputedStyle(element, [pseudoElt])

(1).element:必需,要获取样式值的元素节点对象。

(2).pseudoElt:可选,表示指定元素节点的伪元素(:before、:after、:first-line、:first-letter等)

 <html>
<head>
<title>计算元素样式getComutedStyle方法</title>
<style>
#myDiv {
background-color:red;
width:100px;
height:200px;
}
</style>
<body>
<div id ="myDiv" style=" border:1px solid blue"></div> <script>
var myDiv = document.getElementById("myDiv");
var computedStyle = document.defaultView.getComputedStyle(myDiv, null);
  //document.defaultView也可改为window
    //在很多代码中也有document.defaultView.getComputedStyle()形式,不过它和window.getComputedStyle()的区别可以忽略不计,除了在IE8的浏览器才会建议使用后者
    //因为在当前的浏览器中一般没有不会有任何问题。
alert(computedStyle.backgroundColor); //"red" //rgb(255, 0, 0)
alert(computedStyle.width); //"100px"
alert(computedStyle.height); //"200px"
alert(computedStyle.border); //在某些浏览器中是“1px solid black” //1px solid rgb(0, 0, 255)
</script>
</body>
</head>
</html>

3.封装成函数

1.

function getStyle(obj,attr){
return obj.currentStyle ? obj.currentStyle[attr] : getComputedStyle(obj)[attr];
} var oDiv = document.getElementById("test");
alert(getStyle(oDiv,"top"));

2.下面这个函数,能够获取一个元素的任意 CSS 属性值

 function getStyle(element, attr) {
if(element.currentStyle) {
return element.currentStyle[attr];
} else {
return getComputedStyle(element, false)[attr];
}
}
如果想获得 lists 的 left 属性值,只需要:getStyle(lists,"left")

原生js使用getComputedStyle方法获取CSS内部属性值的更多相关文章

  1. JS使用getComputedStyle()方法获取CSS属性值

    在对网页进行调试的过程中,经常会用到js来获取元素的CSS样式,方法有很多很多,现在仅把我经常用的方法总结如下: 1. obj.style:这个方法只能JS只能获取写在html标签中的写在style属 ...

  2. js中获取css样式属性值

    关于js中style,currentStyle和getComputedStyle几个注意的地方 (1)用js的style只能获取元素的内联样式,内部样式和外部样式使用style是获取不到的.针对css ...

  3. 获取css的属性值

    # -*- coding:utf-8 -*- """ 在元素上执行双击操作 """ from selenium import webdriv ...

  4. 原生js动态创建、获取、删除属性的几种方式

    1.创建属性 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <ti ...

  5. 【总结整理】js获取css的属性(内部,外部,内嵌(写在tag中))

    在JS中需要获取某个元素的宽高或者是绝对定位的位置信息,通常我们会这么写: var elemWidth = elem.style.width; console.log(elemWidth); //(空 ...

  6. getComputedStyle方法获取元素CSS值

    javascript的style属性只能获取内联样式,对于外部样式和嵌入式样式需要用currentStyle属性.但是,currentStyle在FIrefox和Chrome下不支持,需要用getCo ...

  7. 原生JS添加节点方法与jQuery添加节点方法的比较及总结

    一.首先构建一个简单布局,来供下边讲解使用 1.HTML部分代码: <div id="div1">div1</div> <div id="d ...

  8. 原生Js 两种方法实现页面关键字高亮显示

    原生Js 两种方法实现页面关键字高亮显示 上网看了看别人写的,不是兼容问题就是代码繁琐,自己琢磨了一下用两种方法都可以实现,各有利弊. 方法一 依靠正则表达式修改 1.获取obj的html2.统一替换 ...

  9. 原生JS事件绑定方法以及jQuery绑定事件方法bind、live、on、delegate的区别

    一.原生JS事件绑定方法: 1.通过HTML属性进行事件处理函数的绑定如: <a href="#" onclick="f()"> 2.通过JavaS ...

随机推荐

  1. 微信小程序 自定义组件 多列选择器 对象数组 ObjectArray 自关联 三级联动

    使用方法 在 Page.json 注册组件 { "usingComponents": { "address-picker": "/component/ ...

  2. Python高效编程技巧实战 实战编程+面试典型问题 中高阶程序员过渡

    下载链接:https://www.yinxiangit.com/603.html 目录:   如果你想用python从事多个领域的开发工作,且有一些python基础, 想进一步提高python应用能力 ...

  3. window下tomcat的下载安装和环境配置

    一.下载安装tomcat 去官网:http://tomcat.apache.org/  下载自己所需要的版本,解压在没有中文的文件夹路径下. 直接打开压缩包下面,进入bin目录,双击startup.b ...

  4. 一个例子明白 javascript 中 for 与 for in 的区别

    var arr = new Array(); arr["a"] = "aa"; arr["b"] = "bb"; arr ...

  5. VUE Node模式下,如何改变菜单的颜色,如何将超长文字缩略显示,在鼠标进入后展开全部显示,鼠标移出则恢复缩略显示

    VUE Node模式下,如何改变菜单的颜色,如何将超长文字缩略显示,在鼠标进入后展开全部显示,鼠标移出则恢复缩略显示: “事件”引起变量值的变化,系统引擎自动根据变量值的变化刷新页面 在VUE Nod ...

  6. webview与webApp页面交互传参

    参考网址:https://blog.csdn.net/books1958/article/details/44747045 上一篇说了Android集成极光推送获取了RegistrationId推送标 ...

  7. 摩托罗拉GP68对讲机官方说明书下载,包含使用说明压音表和电路结构等

    摩托罗拉GP68对讲机官方说明书,包含使用说明和电路结构等 1.使用说明书 链接: https://pan.baidu.com/s/1fhXXaBp-MSuQs9Sv3v_Crg 提取码: mc3e ...

  8. 002:CSS基础

    注意:蓝色 重要:红色 目录: 1. 学会使用CSS选择器: 9大选择器.交集选择器.并集选择器.后代选择器.子代选择器.伪类选择器. 2.font.color.横向竖向居中.文本修饰.首行缩进. f ...

  9. 微信小程序全局变量的设置、使用、修改

    1. 全局变量的设置 在miniprogram > app.js 文件中设置,globalData对象就是存储全局变量的. App({ globalData: { hasLogin: false ...

  10. 苹果系统IOS第三方管理工具——imazing 优秀

    iMazing 是一款 Windows.macOS 平台的 iPhone.iPad 管理工具,可以进行文件.音乐.视频传输,备份与还原数据,并且可以管理已安装应用,比如重新安装那些已下架的应用,是「史 ...