getComputedStyle与currentStyle获取样式(style/class)


Posted in Javascript onMarch 19, 2013

大家都知道,用document.getElementById(‘element').style.xxx可以获取元素的样式信息,可是它获取的只是DOM元素style属性里的样式规则,对于通过class属性引用的外部样式表,就拿不到我们要的信息了。

DOM标准里有个全局方法getComputedStyle,可以获取到当前对象样式规则信息,如:getComputedStyle(obj,null).paddingLeft,就能获取到对象的左内边距。但是事情还没完,万恶的IE不支持此方法,它有自己的一个实现方式,那就是currentStyle,不同于全局方法getComputedStyle,它是作为DOM元素属性存在的,如:obj.currentStyle.paddingLeft,在IE中就获取到对象的左内边距了,兼容性的写法如下:

return window.getComputedStyle ? window.getComputedStyle(obj,null).paddingLeft : obj.currentStyle.paddingLeft;

这样,就能在IE及FF中返回对象的当前样式信息了。

特别注意一点:如果要获取当前对象的颜色信息,IE返回的是16进制的'#ffffff',而FF返回的是rgb(255,255,255)

用js的style属性可以获得html标签的样式,但是不能获取非行间样式。那么怎么用js获取css的非行间样式呢?在IE下可以用currentStyle,而在火狐下面我们需要用到getComputedStyle。下面是一个小示例:

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>js用currentStyle和getComputedStyle获取css样式</title> 
<style type="text/css"> 
#div1{width:100px; height:100px; background:red;} 
</style> 
<script type="text/javascript"> 
function getStyle(obj, attr) 
{ 
if(obj.currentStyle) 
{ 
return obj.currentStyle[attr]; 
} 
else 
{ 
return getComputedStyle(obj,false)[attr]; 
} 
} 
window.onload=function() 
{ 
var oDiv=document.getElementById('div1'); 
alert(getStyle(oDiv,'width')) 
} 
</script> 
</head> 
<body> 
<div id="div1"></div> 
</body> 
</html>
Javascript 相关文章推荐
网上应用的一个不错common.js脚本
Aug 08 Javascript
IE与Firefox在JavaScript上的7个不同写法小结
Sep 14 Javascript
深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP
Jan 15 Javascript
关于javascript中的typeof和instanceof介绍
Dec 04 Javascript
js获取触发事件元素在整个网页中的绝对坐标(示例代码)
Dec 13 Javascript
js简单实现调整网页字体大小的方法
Jul 23 Javascript
JS实现页面载入时随机显示图片效果
Sep 07 Javascript
使用travis-ci如何持续部署node.js应用详解
Jul 30 Javascript
使用JavaScript实现在页面中显示距离2017年中秋节的天数
Sep 26 Javascript
js实现web调用摄像头 js截取视频画面
Apr 21 Javascript
使用layui的router来进行传参的实现方法
Sep 06 Javascript
CountUp.js实现数字滚动增值效果
Oct 17 Javascript
关于scrollLeft,scrollTop的浏览器兼容性测试
Mar 19 #Javascript
input输入框的自动匹配(原生代码)
Mar 19 #Javascript
javascript实现tabs选项卡切换效果(扩展版)
Mar 19 #Javascript
javascript实现tabs选项卡切换效果(自写原生js)
Mar 19 #Javascript
jquery写个checkbox——类似邮箱全选功能
Mar 19 #Javascript
借助script进行Http跨域请求:JSONP实现原理及代码
Mar 19 #Javascript
DIV+CSS+JS不间断横向滚动实现代码
Mar 19 #Javascript
You might like
PHP mb_convert_encoding文字编码的转换函数介绍
2011/11/10 PHP
在PHP中使用redis
2013/11/04 PHP
php获取文章上一页与下一页的方法
2014/12/01 PHP
PHP直接修改表内容DataGrid功能实现代码
2015/09/24 PHP
PHP传值到不同页面的三种常见方式及php和html之间传值问题
2015/11/19 PHP
PHP读取文件或采集时解决中文乱码
2021/03/09 PHP
ExtJS 2.0实用简明教程 之ExtJS版的Hello
2009/04/29 Javascript
基于jquery完美拖拽,可返回拖动轨迹
2012/03/29 Javascript
onbeforeunload与onunload事件异同点总结
2013/06/24 Javascript
JavaScript作用域与作用域链深入解析
2013/12/06 Javascript
js实现倒计时时钟的示例代码
2013/12/17 Javascript
jQuery表格插件datatables用法总结
2014/09/05 Javascript
node.js中的buffer.length方法使用说明
2014/12/14 Javascript
《JavaScript函数式编程》读后感
2015/08/07 Javascript
JavaScript事件学习小结(三)js事件对象
2016/06/09 Javascript
AngularJS创建一个上传照片的指令实例代码
2018/02/24 Javascript
vue router+vuex实现首页登录验证判断逻辑
2018/05/17 Javascript
vue v-model实现自定义样式多选与单选功能
2018/07/05 Javascript
JS中数据结构与算法---排序算法(Sort Algorithm)实例详解
2019/06/17 Javascript
JS中比Switch...Case更优雅的多条件判断写法
2019/09/05 Javascript
JQuery实现折叠式菜单的详细代码
2020/06/03 jQuery
详解用js代码触发dom事件的实现方案
2020/06/10 Javascript
Python爬虫实现获取动态gif格式搞笑图片的方法示例
2018/12/24 Python
在Python中表示一个对象的方法
2019/06/25 Python
Python中base64与xml取值结合问题
2019/12/22 Python
Python venv虚拟环境配置过程解析
2020/07/08 Python
css3 给背景设置渐变色的方法
2019/09/12 HTML / CSS
Lampenwelt德国:欧洲领先的灯具和照明在线商店
2018/08/05 全球购物
党员自我评价分享
2013/12/13 职场文书
规划编制实施方案
2014/03/15 职场文书
地质灾害防治方案
2014/05/14 职场文书
特教教师先进事迹
2014/05/21 职场文书
食品流通安全承诺书
2014/05/22 职场文书
比赛口号霸气押韵
2015/12/24 职场文书
《月歌。》宣布制作10周年纪念剧场版《RABBITS KINGDOM THE MOVIE》
2022/04/02 日漫
Java 死锁解决方案
2022/05/11 Java/Android