获取元素的外联样式

我们都知道在JS中,使用ele.style.width只能获取到内联样式:

<div id="box" style="background-color: red;"></div>
        <script>
            var oDiv = document.getElementById("box")
            alert(oDiv.style.backgroundColor); //red
        </script>

但是,将样式放在<style></style>标签里,我们获取到的就是空;

这时候我们就需要用到getComputedStyle方法,它接受两个参数,第一个是目标元素,第二个是要选择的伪类,第二个参数如果不选择伪类,就填null:

var oBox = document.getElementById("box");
alert(getComputedStyle(oBox,null).width); //oBox的宽度

但是,在IE中不支持这个方法,它有自己的方法,即currentStyle:

var oBox = document.getElementById("box");
alert(oBox.currentStyle.width);  //oBox的宽度

所以,我们写一个简单的兼容函数:

            function getStyle( obj , attr ){
                if ( window.getComputedStyle ) {
                    return getComputedStyle( obj , null )[attr];
                }else{
                    return obj.currentStyle[attr];
                }
            }
时间: 2024-08-26 10:56:34

获取元素的外联样式的相关文章

获取元素的CSS样式属性值 IE兼容写法

/** * 获取元素的CSS样式属性值 */function css(element, attrName) { /*if (window.getComputedStyle) return window.getComputedStyle(element)[attrName] return element.currentStyle[attrName];*/ return window.getComputedStyle ? getComputedStyle(element)[attrName]: el

JS获取元素非行间样式的方法

currentStyle :只兼容IE浏览器 getComputedStyle :获取计算后的样式,不兼容IE6.IE7.IE8 如何获取非行间样式,同时兼容所有浏览器呢? window.onload=function(){ var oDiv1=document.getElementBy("div1"); if(oDiv.currentStyle){ //如果浏览器支持currentStyle oDiv.currentStyle.width; }else{ //如果浏览器不支持curr

通过js获取元素的css样式属性

var display = this.currentStyle? this.currentStyle.display: window.getComputedStyle(this, null).display; 这样可以获取定义在内部~外部样式表以及内嵌的所有的样式~当然这里指获取display属性~简单来说就是只要定义了display~不管在哪里设置的~都可以获取出来

对于用js获取元素的css样式属性(getComputedStyle,currentStyle,style)(getPropertyValue,getAttribute)

首先单独拎出来讲的是style style: nodeObject.style.cssProperty获取的是DOM节点上 style 属性定义的样式,如果不存在 style 属性,或者 style 属性没有定义相应的样式,则是无法获取的.也就是说,JavaScript 不会到 <style> 标签或者 CSS 文件去获取相应的样式,只能获取 style 属性定义的样式. 就是外部样式表,内部样式表,用style都是无效的,只有内联样式是有效的,当然用style写入也是写入在内联样式的. 然后

获取元素CSS值之getComputedStyle方法熟悉

一.碎碎念~前言 我们都用过jQuery的CSS()方法,其底层运作就应用了getComputedStyle以及getPropertyValue方法. 对于那些只想混口饭吃的人来讲,晓得CSS()如何使用就足够了.对于希望在JS道路上越走越远的来人说,简单了解一些JS库底层实现对自己的学习很有帮助.可能谈不上信手拈来的使用,至少对创造一些创意新颖的新技术拓宽了思路. jQuery为何受欢迎,其中原因之一就是方法名称比较短.好比打架一样,块头大的潜意识认为厉害,就不由得心生畏惧,退避三舍:小个子(

解析JQuery中css()方法,获取元素CSS值之getComputedStyle方法(转载,写的很好)

一.碎碎念~前言 我们都用过jQuery的CSS()方法,其底层运作就应用了getComputedStyle以及getPropertyValue方法. 对于那些只想混口饭吃的人来讲,晓得CSS()如何使用就足够了.对于希望在JS道路上越走越远的来人说,简单了解一些JS库底层实现对自己的学习很有帮助.可能谈不上信手拈来的使用,至少对创造一些创意新颖的新技术拓宽了思路. jQuery为何受欢迎,其中原因之一就是方法名称比较短.好比打架一样,块头大的潜意识认为厉害,就不由得心生畏惧,退避三舍:小个子(

转贴:获取元素CSS值之getComputedStyle方法熟悉

获取元素CSS值之getComputedStyle方法熟悉 一.碎碎念~前言 我们都用过jQuery的CSS()方法,其底层运作就应用了getComputedStyle以及getPropertyValue方法. 对于那些只想混口饭吃的人来讲,晓得CSS()如何使用就足够了.对于希望在JS道路上越走越远的来人说,简单了解一些JS库底层实现对自己的学习很有帮助.可能谈不上信手拈来的使用,至少对创造一些创意新颖的新技术拓宽了思路. jQuery为何受欢迎,其中原因之一就是方法名称比较短.好比打架一样,

vue 获取元素高度

1.html <div ref="getheight"></div> 2.JavaScript // 获取高度值 (内容高+padding+边框) let height= this.$refs.getheight.offsetHeight; // 获取元素样式值 (存在单位) let height = window.getComputedStyle(this.$refs.getheight).height; //获取元素内联样式值(非内联样式无法获取) let

给数组添加一个根据指定下标删除元素的方法、得到0-100的随机数不重复(js)、得到外联样式的css样式值

/** *删除数组指定下标或指定对象 */ Array.prototype.remove=function(obj){ for(var i =0;i <this.length;i++){ var temp = this[i]; if(!isNaN(obj)){ temp=i; } if(temp == obj){ for(var j = i;j <this.length;j++){ this[j]=this[j+1]; } this.length = this.length-1; } } }