利用原生JavaScript获取样式的方式小结

利用原生JavaScript获取样式的方式小结

大家好,又见面了,我是全栈君。

来源:http://www.ido321.com/930.html

ps:是获取样式。不是设置样式。若没有给元素设置样式值。则返回浏览器给予的默认值。(论坛整理)

 

1、element.style:仅仅能获取写在元素标签中的style属性里的样式值,无法获取到定义在<style></style>和通过<link href=”css.css”>载入进来的样式属性

   1: var ele = document.getElementById('ele');
   2: ele.style.color;    //获取颜色

 

2、window.getComputedStyle():能够获取当前元素全部终于使用的CSS属性值

   1: window.getComputedStyle("元素", "伪类");

这种方法接受两个參数:要取得计算样式的元素和一个伪元素字符串(比如“:before”) 。

假设不须要伪元素信息,第二个參数能够是null。

也能够通过document.defaultView.getComputedStyle(“元素”, “伪类”);来使用

   1: var ele = document.getElementById('ele');
   2: var styles = window.getComputedStyle(ele,null);
   3: styles.color;  //获取颜色

能够通过style.length来查看浏览器默认样式的个数。IE6-8不支持该方法,须要使用后面的方法。对于Firefox和Safari。会把颜色转换成rgb格式。

 

3、element.currentStyle:IE 专用。返回的是元素当前应用的终于CSS属性值(包含外链CSS文件,页面中嵌入的<style>属性等)。

   1: var ele = document.getElementById('ele');
   2: var styles = ele.currentStyle;
   3: styles.color;

注意:对于综合属性border等。ie返回undefined,其它浏览器有的返回值。有的不返回。可是borderLeftWidth这种属性是返回值的

 

4、getPropertyValue():获取CSS样式的直接属性名称

   1: var ele = document.getElementById('ele');
   2: window.getComputedStyle(ele,null).getPropertyValue('color');

注意:属性名不支持驼峰格式。IE6-8不支持该方法。须要使用以下的方法

 

5、getAttribute():与getPropertyValue类似,有一点的差异是属性名驼峰格式

   1: var test = document.getElementById('test');
   2: window.getComputedStyle(test, null).getPropertyValue("backgroundColor");

  注意:该方法仅仅支持IE6-8。

 

以下的获取样式方法兼容IE、chrome、FireFox等

   1: function getStyle(ele) {
   2:     var style = null;
   3:     
   4:     if(window.getComputedStyle) {
   5:         style = window.getComputedStyle(ele, null);
   6:     }else{
   7:         style = ele.currentStyle;
   8:     }
   9:     
  10:     return style;
  11: }

在JQuery中,经常使用css()获取样式属性。其底层运作就应用了getComputedStyle以及getPropertyValue方法。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115275.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Databus for Oracle

    Databus for OracleDatabus组成Relay:数据抓取端读取数据源变更行(ROW),并将变更行数据序列化到内存缓冲区。监听客户端请求并传输缓冲区的数据。Client:数据客户端检查Relay端的数据变更,并同步数据。如果与Relay之间数据变更相差太大、会执行追溯功能。注:单个客户端既可以处理全部Databus数据流,也可以作为集群的一部分处理一小部分数据流。bootstrap-pr…

    2022年10月16日
    5
  • unity3D实际的原始视频游戏开发系列讲座10它《战斗:外来入侵》在第一季度游戏开发

    unity3D实际的原始视频游戏开发系列讲座10它《战斗:外来入侵》在第一季度游戏开发

    2022年1月8日
    56
  • java 面试题详解(转自传智播客张孝祥老师)

    java 面试题详解(转自传智播客张孝祥老师)张孝祥正在整理 Java 就业面试题大全 每天进步一点点 CSDN 博客 2011 年 11 月 24 日星期四设为主页加入收藏帮助 留言交流 登录首页阅览室馆友我的图书馆张孝祥正在整理 Java 就业面试题大全 每天进步一点点 CSDN 博客 转载 asdfg 收藏于

    2025年8月24日
    4
  • java 反射机制原理 简述[通俗易懂]

    java 反射机制原理 简述[通俗易懂]什么是反射机制?1、在运行状态中,对于任意一个类,都能够知道这个类的属性和方法。2、对于任意一个对象,都能够调用它的任何方法和属性。这种动态获取信息以及动态调用对象的方法的功能称为JAVA的反射。反射的作用1、在运行时判断任意一个对象所属的类;2、在运行时构造任意一个类的对象;3、在运行时判断任意一个类所具有的成员变量和方法;4、在运行时调用任意一个对象的方法;生成动态代理。反射的…

    2022年7月8日
    22
  • 浅谈 MyBatis 缓存

    浅谈 MyBatis 缓存EhCache是一个快速的、轻量级的、易于使用的、进程内的缓存。它支持read-only和read/write缓存,内存和磁盘缓存。是一个非常轻量级的缓存实现,而且从1.2之后就支持了集群,目前的最新版本是2.8。

    2022年5月21日
    42
  • phpstorm怎么解决激活码has been support的问题【2022免费激活】[通俗易懂]

    (phpstorm怎么解决激活码has been support的问题)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html0HKLM1UCCY-eyJsa…

    2022年3月31日
    107

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号