javascript获取元素CSS样式代码示例


Posted in Javascript onNovember 28, 2013

使用css控制页面有4种方式,分别为行内样式(内联样式)、内嵌式、链接式、导入式。

行内样式(内联样式)即写在html标签中的style属性中,如<div style="width:100px;height:100px;"></div>

内嵌样式即写在style标签中,例如<style type="text/css">div{width:100px; height:100px}</style>

链接式即为用link标签引入css文件,例如<link href="test.css" type="text/css" rel="stylesheet" />

导入式即为用import引入css文件,例如@import url("test.css")

如果想用javascript获取一个元素的样式信息,首先想到的应该是元素的style属性。但是元素的style属性仅仅代表了元素的内联样式,如果一个元素的部分样式信息写在内联样式中,一部分写在外部的css文件中,通过style属性是不能获取到元素的完整样式信息的。因此,需要使用元素的计算样式才获取元素的样式信息。

用window对象的getComputedStyle方法来获取一个元素的计算样式,此方法有2个参数,第一个参数为要获取计算样式的元素,第二个参数可以是null、空字符串、伪类(如:before,:after),这两个参数都是必需的。

来个例子

<style type="text/css">

#testDiv{

border:1px solid red;

width: 100px;

height: 100px;

color: red;

}

</style>

<div id="testDiv"></div>

var testDiv = document.getElementById("testDiv");

var computedStyle = window.getComputedStyle(testDiv, "");

var width = computedStyle.width;

//100px

var height = computedStyle.height;

//100px

var color = computedStyle.color;

//rgb(255, 0, 0)
[/code]

注:获取到的颜色属性都是以rgb(#,#,#)格式返回的。

这个时候如果用testDiv.style来获取样式信息,如testDiv.style.width肯定是为空的。

 

getComputedStyle方法在IE8以及更早的版本中没有实现,但是IE中每个元素有自己的currentStyle属性。

so,来个通用的

var testDiv = document.getElementById("testDiv");
var styleInfo = window.getComputedStyle ? window.getComputedStyle(testDiv, "") : testDiv.currentStyle;
var width = styleInfo.width;
//100px;
var height = styleInfo.height;
//100px;
var color = styleInfo.color;
// rgb(255, 0, 0)

 

最后要注意一点,元素的计算样式是只读的,如果想设置元素样式,还得用元素的style属性(这个才是元素style属性的真正用途所在)。

Javascript 相关文章推荐
juqery 学习之三 选择器 简单 内容
Nov 25 Javascript
Three.js源码阅读笔记(光照部分)
Dec 27 Javascript
Css3制作变形与动画效果
Jul 24 Javascript
浅谈Javascript中Object与Function对象
Sep 26 Javascript
javascript函数命名的三种方式及区别介绍
Mar 22 Javascript
基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
Jun 12 Javascript
深究AngularJS之ui-router详解
Jun 13 Javascript
React通过父组件传递类名给子组件的实现方法
Nov 13 Javascript
JavaScript对象的浅拷贝与深拷贝实例分析
Jul 25 Javascript
javascript实现小型区块链功能
Apr 03 Javascript
JavaScript中的几种继承方法示例
Dec 06 Javascript
vscode中使用npm安装babel的方法
Aug 02 Javascript
浅析JavaScript中的CSS属性及命名规范
Nov 28 #Javascript
JavaScript中的连字符详解
Nov 28 #Javascript
Google (Local) Search API的简单使用介绍
Nov 28 #Javascript
jquery实现弹出窗口效果的实例代码
Nov 28 #Javascript
asm.js使用示例代码
Nov 28 #Javascript
jquery实现动态菜单的实例代码
Nov 28 #Javascript
JavaScript中的常见问题解决方法(乱码,IE缓存,代理)
Nov 28 #Javascript
You might like
一些PHP写的小东西
2006/12/06 PHP
PHP加密扩展库Mcrypt安装和实例
2013/11/10 PHP
php防止sql注入代码实例
2013/12/18 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
2015/02/03 PHP
php版微信公众平台入门教程之开发者认证的方法
2016/09/26 PHP
基于ThinkPHP实现的日历功能实例详解
2017/04/15 PHP
jquery 简单图片导航插件jquery.imgNav.js
2010/03/17 Javascript
Visual Studio中的jQuery智能提示设置方法
2010/03/27 Javascript
js this函数调用无需再次抓获id,name或标签名
2014/03/03 Javascript
javascript实现带节日和农历的日历特效
2015/02/01 Javascript
CSS javascript 结合实现悬浮固定菜单效果
2015/08/23 Javascript
Nodejs初级阶段之express
2015/11/23 NodeJs
React-router 4 按需加载的实现方式及原理详解
2017/05/25 Javascript
微信小程序实现下载进度条的方法
2017/12/08 Javascript
js构造函数创建对象是否加new问题
2018/01/22 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
2019/08/09 Javascript
vue+elementUi 实现密码显示/隐藏+小图标变化功能
2020/01/18 Javascript
微信小程序修改checkbox的样式代码实例
2020/01/21 Javascript
详解vue中v-on事件监听指令的基本用法
2020/07/22 Javascript
探索node之事件循环的实现
2020/10/30 Javascript
详解vue修改elementUI的分页组件视图没更新问题
2020/11/13 Javascript
[48:20]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[01:01:23]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第一场 11.26
2020/11/30 DOTA
《Python之禅》中对于Python编程过程中的一些建议
2015/04/03 Python
详解Python的Django框架中的中间件
2015/07/24 Python
实例讲解Python爬取网页数据
2018/07/08 Python
python批量下载抖音视频
2019/06/17 Python
西雅图电动自行车公司:Rad Power Bikes
2020/02/02 全球购物
房地产开盘策划方案
2014/02/10 职场文书
关于读书的演讲稿400字
2014/08/27 职场文书
2015元旦标语横幅
2014/12/09 职场文书
2014年宣传思想工作总结
2014/12/10 职场文书
2015初一年级组工作总结
2015/07/24 职场文书
2016七夕情人节寄语
2015/12/04 职场文书
2016年习主席讲话学习心得体会
2016/01/20 职场文书
MySQL示例讲解数据库约束以及表的设计
2022/06/16 MySQL