解析js如何获取css样式


Posted in Javascript onDecember 11, 2016

一、获取内联样式

<div id ="myDiv" style="width:100px;height:100px;background-color:red; border:1px solid black;"></div>
<script>
  var myDiv = document.getElementById("myDiv");

  alert(myDiv.style.width);//100px

  alert(myDiv.style['height']);//100px

  var style=myDiv.style;
  alert(style.backgroundColor);//red

  myDiv.style.backgroundColor='green';//myDiv背景色变为绿色 
</script>

在这种情况下,获取和设置样式只靠style属性就可以,因为element.style属性返回的是类似数组的一组样式属性及对应值,因此访问具体样式的时候可以采取两种方式即“ele.style.属性名称”和“ele.style['属性名称']”。但是,要注意的是,针对css样式里background-color;margin-left之类的短杠相接的属性名称,在使用style属性获取设置样式的时候名称要改为驼峰式,如ele.style.backgroundColor.

二、因为第一种方法,即使用style属性只能获取到内联样式。但是,实际情况是文档在现在都基本遵循分离思想,样式基本都是外部链接,所以三种样式都要考虑到的,这时就要使用其他方法进行获取,而在这种情况下进行样式获取时,不同的浏览器又有不同的处理方式(主要是ie和非ie),因此根据浏览器可以分为两种方式:

(2.1)非ie浏览器中,使用document.defaultView对象的getComputedStyle(ele,null/伪类)方法,该方法接受两个参数,第一个为要考察的元素,第二个则要根据情况,如果只是考察元素本身则为null,如果要 考察伪类,则为响应的伪类。该方法获取到的为元素应用的最终样式组合,同样是类似数组的一个实例。

(2.2)在ie浏览器中,对getComputedStyle()方法不支持,但是针对每个标签元素都有一个近似于style属性的currentStyle的属性,且用法和style用法相同。只不过获取到的样式范围不一样。currenStyle获取到的和getComputedStyle()方法相接近。

为了在处理时达到兼容,可以根据这两种不同的处理方式创建一个函数来达到兼容目的,使得不管在那种浏览器中,都可以成功获取样式。如下所示:

<style type="text/css">
#myDiv {
  background-color:blue;
  width:100px;
  height:200px;
}
</style>
<div id ="myDiv" style="background-color:red; border:1px solid black;"></div>
<script>
  var myDiv = document.getElementById("myDiv");
  var finalStyle = myDiv.currentStyle ? myDiv.currentStyle : document.defaultView.getComputedStyle(myDiv, null);/*利用判断是否支持currentStyle(是否为ie)
  来通过不同方法获取style*/
  alert(finalStyle.backgroundColor);  //"red"
  alert(finalStyle.width);       //"100px"
  alert(finalStyle.height);       //"200px"
</script>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
Jan 11 Javascript
html5 canvas js(数字时钟)实例代码
Dec 23 Javascript
用js控制组织结构图可以任意拖拽到指定位置
Jan 17 Javascript
js中数组(Array)的排序(sort)注意事项说明
Jan 24 Javascript
上传文件返回的json数据会被提示下载问题解决方案
Dec 03 Javascript
基于jquery和svg实现超炫酷的动画特效
Dec 09 Javascript
JavaScript File API实现文件上传预览
Feb 02 Javascript
canvas压缩图片转换成base64格式输出文件流
Mar 09 Javascript
Angular 4.x 路由快速入门学习
May 03 Javascript
Angularjs之ngModel中的值验证绑定方法
Sep 13 Javascript
vue App.vue中的公共组件改变值触发其他组件或.vue页面监听
May 31 Javascript
js实现计时器秒表功能
Dec 16 Javascript
BootStrap轮播HTML代码(推荐)
Dec 10 #Javascript
JQuery.validationEngine表单验证插件(推荐)
Dec 10 #Javascript
JS产生随机数的用法小结
Dec 10 #Javascript
基于JavaScript实现随机颜色输入框
Dec 10 #Javascript
BootStrap中
Dec 10 #Javascript
jQuery Ajax请求后台数据并在前台接收
Dec 10 #Javascript
JS 循环li添加点击事件 (闭包的应用)
Dec 10 #Javascript
You might like
dedecms防止FCK乱格式化你的代码的修改方法
2007/03/17 PHP
php检测图片木马多进制编程实践
2013/04/11 PHP
PHP中的gzcompress、gzdeflate、gzencode函数详解
2014/07/29 PHP
php switch语句多个值匹配同一代码块应用示例
2014/07/29 PHP
PHP图片处理之图片旋转和图片翻转实例
2014/11/19 PHP
php获取当月最后一天函数分享
2015/02/02 PHP
php计算函数执行时间的方法
2015/03/20 PHP
利用php输出不同的心形图案
2016/04/22 PHP
PHP防止sql注入小技巧之sql预处理原理与实现方法分析
2019/12/13 PHP
js删除所有的cookie的代码
2010/11/25 Javascript
js中事件的处理与浏览器对象示例介绍
2013/11/29 Javascript
你可能不知道的JavaScript的new Function()方法
2014/04/17 Javascript
javascript学习笔记(一)基础知识
2014/09/30 Javascript
js使用递归解析xml
2014/12/12 Javascript
jquery实现图片随机排列的方法
2015/05/04 Javascript
js实现文本框输入文字个数限制代码
2015/12/25 Javascript
很棒的一组js图片轮播特效
2017/01/12 Javascript
微信小程序对接七牛云存储的方法
2017/07/30 Javascript
angularjs实现简单的购物车功能
2017/09/21 Javascript
微信小程序顶部可滚动导航效果
2017/10/31 Javascript
Js经典案例的实例代码
2018/05/10 Javascript
使用D3.js构建实时图形的示例代码
2018/08/28 Javascript
Vue微信公众号网页分享的示例代码
2020/05/28 Javascript
python zip文件 压缩
2008/12/24 Python
python基础教程之常用运算符
2014/08/29 Python
python图像处理之镜像实现方法
2015/05/30 Python
Python实现提取谷歌音乐搜索结果的方法
2015/07/10 Python
深入理解Python 关于supper 的 用法和原理
2018/02/28 Python
python保存文件方法小结
2018/07/27 Python
python 阶乘累加和的实例
2019/02/01 Python
python Zmail模块简介与使用示例
2020/12/19 Python
Python实现简单的2048小游戏
2021/03/01 Python
国际性能运动服装品牌:Dare 2b
2018/07/27 全球购物
蹦床仓库:Trampoline Warehouse
2018/12/06 全球购物
项目合作协议书
2014/04/16 职场文书
北京青年观后感
2015/06/15 职场文书