JavaScript getComputedStyle

我们使用 element.style 也可以获取元素的CSS样式声明对象,但是其与 getComputedStyle 方法还是有一些差异的。

首先,element.style 是可读可写的,而 getComputedStyle  为只读。

其次,element.style 只可以获取 style 样式上的属性值,而无法得到所有的 CSS 样式值,什么意思呢?回顾一下 CSS 基础,CSS 样式表的表现有三种方式,

  1. 内嵌样式(inline Style) :是写在 HTML 标签里面的,内嵌样式只对该标签有效。
  2. 内部样式(internal Style Sheet):是写在 HTML 的 <style> 标签里面的,内部样式只对所在的网页有效。
  3. 外部样式表(External Style Sheet):如果很多网页需要用到同样的样式(Styles),将样式(Styles)写在一个以 .CSS 为后缀的 CSS 文件里,然后在每个需要用到这些样式(Styles)的网页里引用这个 CSS 文件。

而 element.style 只能获取被这些样式表定义了的样式,而 getComputedStyle 能获取到所有样式的值(在不同浏览器结果不一样)

为方便查看,记下。

    function getStyle(obj, attr){
        if(window.getComputedStyle){
            return getComputedStyle(obj, false)[attr];
        }
        else{
            return obj.currentStyle[attr];      //兼容IE6、7、8
        }
    }
    

PS:如果使用offsetHeight:

    div.offsetHeight = width + 2倍的内边距 + 2倍的边框

var iDiv = document.getElementById(‘div‘);
        iDiv.style.height = parseInt(getStyle(iDiv,"height")) + 10 + ‘px‘;

getStyle();    //获取div的高度  如:100px

使用parseInt()去掉字符获取数值,然后赋值给height以改变div的高度。

时间: 2024-10-13 21:55:30

JavaScript getComputedStyle的相关文章

JavaScript获取非行间样式之currentStyle,getComputedStyle的使用

如果是行间样式我们可以直接用style来获取,但是如果是非行间样式,则style不起作用了,这里需要用到新的语法了. 1.currentStyle 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 <style type="text/

JavaScript强化教程——style、currentStyle、getComputedStyle区别介绍

本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍:JavaScript强化教程 —— style.currentStyle.getComputedStyle区别介绍 style.currentStyle.getComputedStyle区别介绍 样式表有三种方式 内嵌样式(inline Style) :是写在Tag里面的,内嵌样式只对所有的Tag有效. 内部样式(internal Style Sheet):是写在HTML的里面的,内部样式只对所在的网页有效. 外部样式表(Extern

javascript 获取样式表里的属性值 currentStyle 和 getComputedStyle 的使用

很多时候我们要获取 CSS 样式表里面的值(非行间样式),而获取行间样式的属性值那么这用 obj.style.attr 就能获取得到,那么怎么样才能获取到CSS样式表里面的值呢,那么就要请出我们的主角 currentStyle 和 getComputedStyle ,简要的介绍一下他们,再封装一个函数来兼容各个浏览器. 介绍: currentStyle :这个属性是 IE 浏览器上使用的. getComputedStyle :这个方法是 搞基 浏览器上使用的. 封装: //这里的 obj 参数指

JavaScript中style, currentStyle和 getComputedStyle的异同

今天在做项目的时候,习惯性的用到了element.style.width,然而浏览器却报错,错误提示是style is undefined,这是我才意识到,内联样式表和外联样式表在js应用中也有很大的不同! 首先样式表有三种,外联样式,内联样式,行间样式,element.style.attr只有在attr定义在行间样式时才生效,因此替代方案,currentStyle和getComputedStyle出现了. currentStyle是由微软提出来的,目的就是为了返回当前元素应用的属性,不管是外联

JavaScript window.getComputedStyle()

一.window.getComputedStyle() getComputedStyle 是一个可以获取当前元素所有最终使用的 CSS 属性值.返回的是一个 CSS 样式声明对象 ([object CSSStyleDeclaration]),只读. 二.getComputedStyle 与 style 的区别 1. 只读与可写 正如上面提到的 getComputedStyle 方法是只读的,只能获取样式,不能设置:而 element.style 能读能写,能屈能伸. 2. 获取的对象范围 get

javascript:currentStyle和getComputedStyle的兼容写法

currentStyle:获取计算后的样式,也叫当前样式.最终样式. 优点:可以获取元素的最终样式,包括浏览器的默认值,而不像style只能获取行间样式,所以更常用到. 注意:不能获取复合样式如background属性值,只能获取单一样式如background-color等. alert (oAbc.currentStyle); 非常遗憾的是,这个好使的东西也不能被各大浏览器完美地支持.准确地说,在我测试的浏览器中,IE8和Opera 11弹出了“object CSSStyleDeclarati

JavaScript初步认识

一 . JavaScrip的嵌入方式: ----- <li onclick="alert('Hello')">条目一</li>         内嵌在html中 ------<li onclick="init()">条目一</li> <script> function init(){ alert("Hello"): } </script>                  

JavaScript实现元素属性的缓冲变化

--------------------------------------------------- 今天给大家分享一个用JavaScript实现 元素的属性缓冲变化效果,代码如下: --------------------------------------------------- 1 //获取样式 2 function getStyle( obj, attr ){ //封装的获取元素样式的函数; 3 4 if(obj.currentStyle){ 5 6 return obj.curre

JavaScript 笔记

1,alert(); alert("提示信息"); 换行 + "\n"2,prompt(); ----> 得到的是 string 类型, 可能返回 null 和 "" ; prompt("提示信息"); prompt("提示信息","输入框默认信息");3,confirm(); confirm("确认信息?") //确定返回TRUE,取消返回FALSE 4,Ja