>>>>> js-获取元素的样式

内置函数getComputedStyle()

在JS中,我们经常会对DOM元素对象进行样式的操作,那么我们又该如何进行读、取呢?首先,我们可以通过js内置的函数getComputedStyle()来获取到计算后元素的样式的一个对象,通过样式属性取到我们想要的属性值

var oDiv = document.getElementsByTagName('div')[0];
var oStyle=getComputedStyle(oDiv)//这是一个对象
var oWidth=oStyle.width//获取到元素宽的值

*注:getComputedStyle()得到的样式对象,只能读,不能写
但是,getComputedStyle()只适用于标准下的浏览器,对于IE9版本以下的IE浏览器是不支持的,那么,在IE中我们又该如何来获取元素的样式呢?同样,IE虽然有自己的一套规则,但还是会为我们对元素进行操作提供规则的,我们可以使用currentStyle来获取ie下元素样式

var oDiv = document.getElementById('div');//在IE中通过className获取元素是不行的
var oWidth=oDiv.currentStyle.width.//在IE中打开,获取到元素宽的值

然而currentStyle又不能在其他浏览器中使用,所以,我们为了方便且能解决这一兼容问题,可以将这两种方法编写成一个getStyle()函数,这样,在不同的浏览器打开也就不会出现问题了

var oDiv = document.getElementById('div');
function getStyle(obj, attr){
    //兼容性的时候, 判断浏览器是否支持这个方法或属性, 可以直接判断
    if( obj.currentStyle ){
        return obj.currentStyle[attr];
    }
    else{
        var style = getComputedStyle(obj);
        return style[attr];
    }
}
console.log ( getStyle(oDiv,width) )
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 元素样式有几种形式,其中: 外部样式:HTML 中通过 标签引入的 CSS 文件样式。 内部样式:写在 HTM...
    Primers阅读 4,870评论 0 0
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,687评论 1 92
  • 普通白纸貌似没有彩铅纸画的线条那么明显,而且没有修正液,桑心( ̄へ ̄)
    雪酱阅读 1,885评论 0 0
  • 文/顾惟意 网友在微博上发起毒鸡汤接力大赛,说实话,我本人就是鸡汤的忠实拥护者,注意!是鸡汤,不分有毒还是无毒!生...
    顾惟意阅读 9,126评论 0 1
  • 昨晚小区里发生的那一幕,经过了一个晚上的洗礼,依旧让我有点惊魂未定。 以前别人总说:活在当下,因为我们永远不知道明...
    芙蓉出水阅读 3,437评论 2 1