工作中经常会需要获取DOM元素的样式,之前都是通过jquery的css()方法,现在总结一下通过原生js获取元素样式的方法。

  • obj.style
    js var _width = obj.style.width;
    该方法基本可以忽略,因为他只能获取到内敛样式。而现在很少会写内联样式。当然他有个好处是可读可写,所以可以据此设置元素的样式。
  • window.getComputedStyle
    js // 语法如下: window.getComputedStyle('元素','伪元素'); var _css = window.getComputedStyle(obj,null); // 不涉及伪元素的可以传null var _width = _css.getPropertyValue('width'); // _css.width
    该方法对样式可读不可写,返回一个描述元素最终样式的对象。获取某一个样式的值,可以像访问对象属性那样访问,但建议使用getPropertyValue(propertyName)方法获取(此处属性名不支持Camel-Case,所以要用类似'background-color')。可惜的是该方法在IE低版本(<IE8)是不支持的,所以IE下可以用下面的方法。
  • obj.currentStyle
    js var _css = obj.currentStyle; var _width = _css.getAttribute('width'); // _css.width
    该属性是IE自己的一个属性,也是可读不可写的。需要注意的是此处获取具体样式值的时候,getAttribute(propertyName),其中属性名必须是驼峰式命名。

原生js获取元素的样式信息的更多相关文章

  1. 原生js获取元素样式

    摘要: 我们在开发过程中经常会遇到通过js获取或者改变DOM元素的样式,方法有很多,比如:通过更改DOM元素的class.现在我们讨论原生js来获取DOM元素的CSS样式,注意是获取不是设置 在开始之 ...

  2. 原生js获取元素非行内样式属性的方法

    获取当前对象的样式DOM标准中的全局方法 getComputedStyle(obj).width (获取元素的宽度),但在非标准IE浏览器(IE8)以下有兼容问题IE8以下要这样写 obj.curre ...

  3. 原生JS获取元素宽高实践详解

    开篇的话 任何不是亲身实践中求得的知识,都不是属于你的.任何求得的知识不去时常温习运用,也不是属于你的. 记录由来 在做个上拉广告功能中遇到了一个"理所当然"觉得对的用法,慢慢才排 ...

  4. 原生JS获取元素集合的子元素宽度

    有些时候,在一个网页的ul li中,存在左右两个部分的内容,但是右边元素内容又是不固定,左边元素相对应的不能用固定宽度,所有需要我们动态的获取右边元素宽度,来赋值给左边元素的marginRight值. ...

  5. 原生js获取元素的子元素

    //使用firstChild //但是下面这种因为有空格,也算其子元素 <lable> <span id="onlinePerson" name="pe ...

  6. 原生js获取元素的各种位置(大全)

    加给元素: offsetLeft (距离定位父级的距离) offsetTop (距离定位父级的距离) offsetWidth (可视宽度) offsetHeight (可视高度) clientLeft ...

  7. 原生JS获取元素的位置与尺寸

    1.内高度.内宽度: 内边距 + 内容框 element.clientWidth element.clientHeight 2.外高度,外宽度: 边框 + 内边距 + 内容框 element.offs ...

  8. 原生js获取元素style属性

    function getStyle(ele,attr){ if( ele.currentStyle ){ return ele.currentStyle[attr]; // ie } else { r ...

  9. 【封装函数】原生js 获取行内外联样式-兼容IE

    var dom=document.getElementsByTagName("div")[0]; console.log(getStyle(dom,"padding-to ...

随机推荐

  1. Selenium中如何运行 auto.exe 文件

    Runtime exe = Runtime.getRuntime(); try{ String str = "D:\\Auto上传文件\\photo.exe"; exe.exec( ...

  2. Leetcode 617.合并二叉树

    合并二叉树 给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠. 你需要将他们合并为一个新的二叉树.合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新 ...

  3. Lambda表达式的本质

    //.net 1.0写法 /*delegate bool MyMethod(string s); bool myMethod(string s) { return s.IndexOf("ab ...

  4. Javascript 表达式和运算符

    属性访问表达式: var o = {x:1, y:{z:3}};//示例对象 var a = [o, 4, [5,6]];//包含对象的数组 console.log(o["x"]) ...

  5. 基于 Spring 和 iBATIS 的动态可更新多数据源持久层

    前言 我们时常会遇到一些 web 项目,需要从不同的数据源中抓取数据来进行分析,而这些数据源是有可能变化的,需要用户来进行动态的维护和添加.可是,大多数的 web 程序使用了应用服务器或者容器中间件来 ...

  6. java如何建项目

    java常开发的项目有哪几种? 这几种项目都是怎么建的?

  7. poj2002 hash+邻接表优化Squares

    Squares Time Limit: 3500MS   Memory Limit: 65536K Total Submissions: 17487   Accepted: 6643 Descript ...

  8. POJ--2823--Sliding Window----单调队列问题

    Sliding Window Time Limit:12000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Des ...

  9. 【bzoj2083】[Poi2010]Intelligence test STL-vector+二分查找

    题目描述 霸中智力测试机构的一项工作就是按照一定的规则删除一个序列的数字,得到一个确定的数列.Lyx很渴望成为霸中智力测试机构的主管,但是他在这个工作上做的并不好,俗话说熟能生巧,他打算做很多练习,所 ...

  10. 一个 Java 的 Socket 服务器和客户端通信的例子

    一个 HelloWord 级别的 Java Socket 通信的例子.通讯过程: 先启动 Server 端,进入一个死循环以便一直监听某端口是否有连接请求.然后运行 Client 端,客户端发出连接请 ...