javascript的样式获取--getComputedStyle、currentStyle、style
2016-01-27 14:30
519 查看
在css样式表有三种方式
内嵌样式(inline Style) :是写在html标签里的,内嵌样式只对所有的Tag有效。
内部样式(internal Style Sheet):是写在HTML的<head><style></style></head>里面的,内部样式只对所在的网页有效。
外部样式表(External Style Sheet):如果很多网页需要用到同样的样式(Styles),将样式(Styles)写在一个以.css为后缀的CSS文件里,然后在每个需要用到这些样式(Styles)的网页里引用<link>这个CSS文件。
DOM标准引入了覆盖样式表的概念,document.getElementById(‘element').style.xxx可以获取元素的样式信息,可是它获取的只是DOM元素style属性里的内联样式规则,对于通过class属性引用的外部样式表的信息,是无法获取到的。
解决方案:引入currentStyle,getComputedStyle
如果要获取外部样式表中的信息,就会用到DOM标准里定义的,widow对象的全局方法getComputedStyle(),
window.getComputedStyle(id,null).xxx,可以获取到当前对象样式规则信息如:getComputedStyle(obj,null).fontSize,就能获取到对象的字体大小。
但是存在兼容问题。IE浏览器不支持此方法,它有自己的一个实现方式currentStyle,但不同于全局方法getComputedStyle,它是作为DOM元素属性存在的。
PS:如果是获取背景色,这种方法在firefox和IE中的返回值还是不一样的,IE中是返回"#ffff99"样子的,而firefox中返回"rgb(238, 44, 34) ",值得注意的是:window.getComputedStyle(id,null)这种方式不能设置样式,只能获取,要设置还得写成类似这样id.style.background="#EE2C21";
解决兼容问题:
内嵌样式(inline Style) :是写在html标签里的,内嵌样式只对所有的Tag有效。
内部样式(internal Style Sheet):是写在HTML的<head><style></style></head>里面的,内部样式只对所在的网页有效。
外部样式表(External Style Sheet):如果很多网页需要用到同样的样式(Styles),将样式(Styles)写在一个以.css为后缀的CSS文件里,然后在每个需要用到这些样式(Styles)的网页里引用<link>这个CSS文件。
DOM标准引入了覆盖样式表的概念,document.getElementById(‘element').style.xxx可以获取元素的样式信息,可是它获取的只是DOM元素style属性里的内联样式规则,对于通过class属性引用的外部样式表的信息,是无法获取到的。
解决方案:引入currentStyle,getComputedStyle
如果要获取外部样式表中的信息,就会用到DOM标准里定义的,widow对象的全局方法getComputedStyle(),
window.getComputedStyle(id,null).xxx,可以获取到当前对象样式规则信息如:getComputedStyle(obj,null).fontSize,就能获取到对象的字体大小。
但是存在兼容问题。IE浏览器不支持此方法,它有自己的一个实现方式currentStyle,但不同于全局方法getComputedStyle,它是作为DOM元素属性存在的。
PS:如果是获取背景色,这种方法在firefox和IE中的返回值还是不一样的,IE中是返回"#ffff99"样子的,而firefox中返回"rgb(238, 44, 34) ",值得注意的是:window.getComputedStyle(id,null)这种方式不能设置样式,只能获取,要设置还得写成类似这样id.style.background="#EE2C21";
解决兼容问题:
if(typeof window.getComputedStyle != 'undefined'){//w3c return window.getComputedStyle(id,null)[attribute]; }else if(typeof id.currentStyle != 'undefined'){ return id.currentStyle[attribute]; }
相关文章推荐
- 常用JavaScript代码
- jsdoc propertype方式的注解格式
- JS 截取字符串substr 和 substring方法的区别
- JSON与字符串互相转换的几种方法
- JSP中的注释操作及JSP中的三种Scriptlet
- ConvNetJS源代码解析第二篇
- js页面跳转整理
- js入门——Dom基础
- 服务端嵌套json
- erlang 用rfc4627 带中文的json格式
- JS操作JSON总结
- js标签放在html的什么位置比较好
- 用window.onerror捕获并上报Js错误的方法
- js存cookie
- String与JSON的转换和Array转String
- javascript下的瀑布流效果
- 再谈JavaScript异步编程
- c标签 if else c标签 总结
- ClickSpark.js实现粒子特效
- 简单介绍jsonp 使用小结