getComputedStyle的应用
后面有例子,所以把HTML,CSS样式写在前面
HTML结构:
<div id="myDiv" style="background-color: lightseagreen; border: 5px solid #ccc;"></div>
CSS样式:
#myDiv{
width: 200px;
height: 200px;
background-color: red;
}
1.先来解释下getComputedStyle
getComputedStyle()方法返回一个CSSStyleDeclaration对象,其中包含当前元素的所有计算样式。
其语法:

接受两个参数:参数1 element表示用于计算样式的元素;参数2 pseudoElt表示伪元素,若没有可用null代替
上面信息参考自这里 。
另外通过查找其他一些资料看到也有这样写的:
var style = document.defaultView.getComputedStyle(element,[pseudoElt]);
与之前的语法相比参数相同,不同之处很明显不用说了吧。window与document.defaultView有什么区别呢,稍等去查下资料。
要补充一点,参数2可省略不写。
2.兼容性
getComputedStyle()方法兼容性放面还是不错滴,来人!上证图!

如图,除了不兼容IE8之前的,其他主流浏览器都兼容,可以放心大胆的使用了。
“等等,这位小哥,那IE6~8怎么办?”
“这个嘛,有办法!”
3.currentStyle支持IE6~8
在IE中,每个具有style属性的元素还有一个currentStyle属性。
其语法是:element.currentStyle.attribute或element.currentStyle['attribute'];
例
div.currentStyle.width;
或者
div.currentStyle['width'];
4.该说说defaultView了
defaultView是什么鬼,还真不知道,马上Google一下在mozilla上查到一点信息:在浏览器中,该属性返回当前 document 对象所关联的 window 对象,如果没有,会返回 null。
兼容性方面:根据 quirksmode,IE 9 以下版本不支持 defaultView。
测试一下与window的关系
alert(document.defaultView==window);//true
返回的结果是true,哇咔咔咔再测测全等于是不是返回的也是true
alert(document.defaultView===window);//true
弹出的结果也是true。
既然这样我干嘛不用语句短的那个呢。由语法一得知getComputedStyle()方法本身就存在于window全局对局对象中,是不是可以这样写
var comput = getComputedStyle(div);
经测试完全可以!
5.style
style用于获取或设置元素的内联样式,内部样式和外部样式用style是获取不到的。
获取内部样式的height属性值:
alert(div.style.height);
弹出结果如图:

获取内联样式:
alert(div.style.border);
弹出结果如图:

显然可以获取得到,不知道细心的你发现没有我在内联样式设置的border颜色使用十六进制设置的弹出的却是rgb格式的。测试主要是在Google浏览器,又试了火狐、Opera、Safari浏览器测试返回的都是rgb格式(IE因为没有条件暂时没有测试,有兴趣的可以测一下)。
6.总结
叨叨了不少,来个总结吧!
getComputedStyle()获取的是计算机(浏览器)计算后的样式,兼容除IE6~8之外的其他主流浏览器,只读。
currentStyle仅支持IE浏览器,作用与getComputedStyle一样,但是用法不同。
style用于获取或设置元素的内联样式,内部样式和外部样式用style则获取不到。
有错误或表达不准确之处,欢迎指正。
getComputedStyle的应用的更多相关文章
- currentStyle与getComputedStyle应用
getComputedStyle获取的是计算机(浏览器)计算后的样式,但是不兼容IE6.7.8(主要用于非IE浏览器) currentStyle方法兼容IE6.7.8,但是不兼容标准浏览器(主要用于I ...
- JS使用getComputedStyle()方法获取CSS属性值
在对网页进行调试的过程中,经常会用到js来获取元素的CSS样式,方法有很多很多,现在仅把我经常用的方法总结如下: 1. obj.style:这个方法只能JS只能获取写在html标签中的写在style属 ...
- style,currentStyle,getComputedStyle的区别和用法
先说说层叠样式表的三种形式(三种的叫法不一,按照各自的习惯): 一.内联样式:在HTML标签用style属性设置.如: 1 <p >这是内联样式</p> 二.嵌入样式:通过&l ...
- getComputedStyle/currentStyle/style之间的爱恨情仇
getComputedStyle是? getComputedStyle是一个可以获取当前元素所有最终使用的CSS属性值.返回的是一个CSS样式声明对象([object CSSStyleDeclarat ...
- getComputedStyle 方法
一:getComputedStyle getComputedStyle是一个可以获取当前元素所有最终使用的CSS属性值.返回的是一个CSS样式声明对象([object CSSStyleDeclarat ...
- 【CSS进阶】原生JS getComputedStyle等方法解析
最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷.渐 ...
- JavaScript getComputedStyle
我们使用 element.style 也可以获取元素的CSS样式声明对象,但是其与 getComputedStyle 方法还是有一些差异的. 首先,element.style 是可读可写的,而 get ...
- getComputedStyle的简单用法
var number=window.getComputedStyle("元素").style样式名
- JavaScript中style, currentStyle和 getComputedStyle的异同
今天在做项目的时候,习惯性的用到了element.style.width,然而浏览器却报错,错误提示是style is undefined,这是我才意识到,内联样式表和外联样式表在js应用中也有很大的 ...
随机推荐
- magento后台使用POST表单时,要使用必要参数form_key才能正常通讯
<form action="<?php echo $this->getSaveUrl() ?>" method="POST" encty ...
- [不断更新]iOS开发常用技术
1.修改默认初始化方法 构建便利构造器 修改默认init初始化 .m文件中 @implementation 类名 -(id)init{ self=[super init]; printf(" ...
- 【python】with的实现方法
来源:http://www.ibm.com/developerworks/cn/opensource/os-cn-pythonwith/#icomments 重点: with方法适用于需要分配和清理资 ...
- sh3.useradd 添加用户脚本
1.写一个脚本: 添加10个用户user1到user10,密码同用户名,但要求只有用户不存在的情况下才能添加 #/bin/bash # ..};do if id user$i &> /d ...
- tp框架之自动验证表单
tp框架的create自动加载表单的方法可以自动根据自己定义的要求来验证表单里面的内容,但是由于是在后台执行代码,会拖慢程序运行速度,所以还是建议通过前端js来进行判断,后台只进行数据库的查询以及传值 ...
- android初级篇之apk签名key keystore格式转pk8+x509.pem
转自:http://www.jianshu.com/p/3bd5c68cc44d 常用的android的签名工具有两个即jarsigner 和apksigner.这两种使用的key格式不一样,keys ...
- 蓝桥杯算法提高 P1001(大数乘法)
算法提高 P1001 时间限制:1.0s 内存限制:256.0MB 当两个比较大的整数相乘时,可能会出现数据溢出的情形.为避免溢出,可以采用字符串的方法来实现两个大数之间的乘法. 具体 ...
- scrapy爬虫结果插入mysql数据库
1.通过工具创建数据库scrapy
- Redis集群搭建1
wget .168.0.201:6379 192.168.0.201:6380 192.168.0.201:6381 192.168.0.202:16379 192.168.0.202:16380 1 ...
- Maven的pom.xml 配置详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...