JavaScript中获取样式的原生方法小结


Posted in Javascript onOctober 08, 2014

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

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

var ele = document.getElementById('ele');

ele.style.color;    //获取颜色

2、window.getComputedStyle():可以获取当前元素所有最终使用的CSS属性值。

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

这个方法接受两个参数:要取得计算样式的元素和一个伪元素字符串(例如“:before”) 。如果不需要伪元素信息,第二个参数可以是null。也可以通过document.defaultView.getComputedStyle(“元素”, “伪类”);来使用
var ele = document.getElementById('ele');

var styles = window.getComputedStyle(ele,null);

styles.color;  //获取颜色

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

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

var ele = document.getElementById('ele');

var styles = ele.currentStyle;

styles.color;

注意:对于综合属性border等,ie返回undefined,其他浏览器有的返回值,有的不返回,但是borderLeftWidth这样的属性是返回值的

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

var ele = document.getElementById('ele');

window.getComputedStyle(ele,null).getPropertyValue('color');

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

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

var test = document.getElementById('test');

window.getComputedStyle(test, null).getPropertyValue("backgroundColor");

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

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

function getStyle(ele) {

     var style = null;

     

    if(window.getComputedStyle) {

         style = window.getComputedStyle(ele, null);

     }else{

         style = ele.currentStyle;

     }

     

    return style;

}

在JQuery中,常用css()获取样式属性,其底层运作就应用了getComputedStyle以及getPropertyValue方法。
Javascript 相关文章推荐
javascript插入样式实现代码
Feb 22 Javascript
Jquery实现视频播放页面的关灯开灯效果
May 27 Javascript
JS将制定内容复制到剪切板示例代码
Feb 11 Javascript
extJS中常用的4种Ajax异步提交方式
Mar 07 Javascript
使用js Math.random()函数生成n到m间的随机数字
Oct 09 Javascript
不同编码的页面表单数据乱码问题解决方法
Feb 15 Javascript
jQuery实现的瀑布流加载效果示例
Sep 13 Javascript
Bootstrap Scrollspy源码学习
Mar 02 Javascript
微信小程序遇到修改数据后页面不渲染的问题解决
Mar 09 Javascript
JavaScript异步加载问题总结
Feb 17 Javascript
微信小程序页面滚动到指定位置代码实例
Sep 07 Javascript
vue仿淘宝滑动验证码功能(样式模仿)
Dec 10 Javascript
吐槽一下我所了解的Node.js
Oct 08 #Javascript
Node.js 的异步 IO 性能探讨
Oct 08 #Javascript
JS中的form.submit()不能提交表单的错误原因
Oct 08 #Javascript
js数值计算时使用parseInt进行数据类型转换(jquery)
Oct 07 #Javascript
js交换排序 冒泡排序算法(Javascript版)
Oct 04 #Javascript
Javascript获取当前时间函数和时间操作小结
Oct 01 #Javascript
js事件绑定快捷键以ctrl+k为例
Sep 30 #Javascript
You might like
PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
2013/06/18 PHP
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
2013/06/20 PHP
php从字符串创建函数的方法
2015/03/16 PHP
zend framework中使用memcache的方法
2016/03/04 PHP
javascript 兼容鼠标滚轮事件
2009/04/07 Javascript
JavaScript call apply使用 JavaScript对象的方法绑定到DOM事件后this指向问题
2011/09/28 Javascript
Js数组的操作push,pop,shift,unshift等方法详细介绍
2012/12/28 Javascript
jquery的clone方法应用于textarea和select的bug修复
2014/06/26 Javascript
AngularJS实现动态编译添加到dom中的方法
2016/11/04 Javascript
JavaScript数据结构之二叉树的遍历算法示例
2017/04/13 Javascript
Vuejs入门教程之Vue生命周期,数据,手动挂载,指令,过滤器
2017/04/19 Javascript
js+html5生成自动排列对话框实例
2017/10/09 Javascript
vue实现某元素吸顶或固定位置显示(监听滚动事件)
2017/12/13 Javascript
使用vue-router在Vue页面之间传递数据的方法
2019/07/15 Javascript
使用Python操作Elasticsearch数据索引的教程
2015/04/08 Python
python自动化脚本安装指定版本python环境详解
2017/09/14 Python
Python面向对象基础入门之设置对象属性
2018/12/11 Python
Python3解释器知识点总结
2019/02/19 Python
python面试题Python2.x和Python3.x的区别
2019/05/28 Python
Django中Middleware中的函数详解
2019/07/18 Python
python scrapy爬虫代码及填坑
2019/08/12 Python
python实现复制文件到指定目录
2019/10/16 Python
关于Tensorflow分布式并行策略
2020/02/03 Python
Python 实现Image和Ndarray互相转换
2020/02/19 Python
Python3标准库之threading进程中管理并发操作方法
2020/03/30 Python
什么是python的函数体
2020/06/19 Python
VSCODE配置Markdown及Markdown基础语法详解
2021/01/19 Python
CSS3实现任意图片lowpoly动画效果实例
2017/05/11 HTML / CSS
linux面试题参考答案(5)
2014/09/01 面试题
介绍下Java中==和equals的区别
2013/09/01 面试题
学生党员思想汇报
2013/12/28 职场文书
团支部建设方案
2014/05/02 职场文书
2014年销售工作总结范文
2014/12/01 职场文书
高中班主任工作总结(范文)
2019/08/20 职场文书
MYSQL 无法识别中文的永久解决方法
2021/06/03 MySQL
解决vue-router的beforeRouteUpdate不能触发
2022/04/14 Vue.js