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 相关文章推荐
jQuery实战之品牌展示列表效果
Apr 10 Javascript
jquery方法+js一般方法+js面向对象方法实现拖拽效果
Aug 30 Javascript
jQuery Raty 一款不错的星级评分插件
Aug 24 Javascript
js 作用域和变量详解
Feb 16 Javascript
react.js使用webpack搭配环境的入门教程
Aug 14 Javascript
vue路由拦截及页面跳转的设置方法
May 24 Javascript
详解swiper在vue中的应用(以3.0为例)
Sep 20 Javascript
100行代码实现一个vue分页组功能
Nov 06 Javascript
JS浅拷贝和深拷贝原理与实现方法分析
Feb 28 Javascript
解析原来浏览器原生支持JS Base64编码解码
Aug 12 Javascript
vue实现手机号码的校验实例代码(防抖函数的应用场景)
Sep 05 Javascript
JavaScript 面向对象程序设计详解【类的创建、实例对象、构造函数、原型等】
May 12 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 操作数组(合并,拆分,追加,查找,删除等)
2012/07/20 PHP
php防止CC攻击代码 php防止网页频繁刷新
2015/12/21 PHP
前端开发部分总结[兼容性、DOM操作、跨域等](持续更新)
2010/03/04 Javascript
JS/jQuery实现默认显示部分文字点击按钮显示全部内容
2013/05/13 Javascript
js通过元素class名字获取元素集合的具体实现
2014/01/06 Javascript
Bootstrap导航栏各元素操作方法(表单、按钮、文本)
2015/12/28 Javascript
微信小程序 网络请求(GET请求)详解
2016/11/16 Javascript
AngularJS基于factory创建自定义服务的方法详解
2017/05/25 Javascript
Node.js 8 中的 util.promisify的详解
2017/06/12 Javascript
浅谈Vue内置component组件的应用场景
2018/03/27 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
2018/05/04 Javascript
微信上传视频文件提示(推荐)
2018/11/22 Javascript
用WebStorm进行Angularjs 2开发(环境篇:Windows 10,Angular-cli方式)
2018/12/05 Javascript
TypeScript类型声明书写详解
2019/08/28 Javascript
手把手带你入门微信小程序新框架Kbone的使用
2020/02/25 Javascript
Python中实现的RC4算法
2015/02/14 Python
Python使用Matplotlib实现雨点图动画效果的方法
2017/12/23 Python
利用python实现简单的邮件发送客户端示例
2017/12/23 Python
python批量替换页眉页脚实例代码
2018/01/22 Python
Python中单例模式总结
2018/02/20 Python
Python自动发送邮件的方法实例总结
2018/12/08 Python
Django Serializer HiddenField隐藏字段实例
2020/03/31 Python
美国家用电器和电子产品商店:Abt
2016/09/06 全球购物
Scholastic父母商店:儿童书籍
2017/01/01 全球购物
Zatchels官网:英国剑桥包品牌
2021/01/12 全球购物
在C语言中实现抽象数据类型什么方法最好
2014/06/26 面试题
管理失职检讨书
2014/02/12 职场文书
秸秆管理实施方案
2014/03/15 职场文书
品牌推广策划方案
2014/05/28 职场文书
创建文明城市标语
2014/06/16 职场文书
七夕相亲活动策划方案
2014/08/31 职场文书
县政府领导班子四风问题对照检查材料思想汇报
2014/09/26 职场文书
店铺转让协议书
2015/01/29 职场文书
费用申请报告范文
2015/05/15 职场文书
浅谈Python协程asyncio
2021/06/20 Python
Java实现二分搜索树的示例代码
2022/03/17 Java/Android