最近写东西碰到一个问题,通过document.getElementById(id).style.XXX
无法获取到样式值?查完资料才发现方法只能获取元素的内联样式,那要获取内部样式或外部样式该怎么办?
getComputedStyle
原来获取外部样式或内部样式用的是window.getComputedStyle
方法,用法如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>getComputedStyle</title>
<style>
div{width:100px; height:100px; background-color:#333;}
</style>
</head>
<body>
<div id="div"></div>
<script>
window.onload=function(){
var div = document.getElementById('div');
console.log(window.getComputedStyle(div, false)['width']); //100px
};
</script>
</body>
</html>
这种方法可以很好的在Chrome、Firefox、Opera、Safari、IE9+运行,但在IE8及以下的浏览器就不行了,原来在IE6-IE8有自己的方法:element.currentStyle
。所以为了兼容性考虑我们可以封装一下:
function getStyle (obj, sName){
return (obj.currentStyle || window.getComputedStyle(obj, false))[sName];
}
最后
第一次写文章可能不怎么样,望大神们轻拍......
自转行来现在公司已有几个月了,公司就我一个前端,工作也比较少,好多基础东西不写项目都要忘了,接下来要自己写点东西好好回忆巩固一下了。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。