解析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 相关文章推荐
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
Nov 14 Javascript
javascript(js)的小数点乘法除法问题详解
Mar 07 Javascript
jQuery.parseJSON(json)将JSON字符串转换成js对象
Jul 27 Javascript
JavaScript的removeChild()函数用法详解
Dec 27 Javascript
JavaScript焦点事件、鼠标事件和滚轮事件使用详解
Jan 15 Javascript
好好了解一下Cookie(强烈推荐)
Jun 14 Javascript
JS正则表达式之非捕获分组用法实例分析
Dec 28 Javascript
jQuery中元素选择器(element)简单用法示例
May 14 jQuery
微信小程序自定义弹窗wcPop插件
Nov 19 Javascript
Vue实现一个图片懒加载插件
Mar 11 Javascript
JavaScript如何获取一个元素的样式信息
Jul 29 Javascript
js实现随机点名功能
Dec 23 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
PHP创建/删除/复制文件夹、文件
2016/05/03 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
2016/11/15 PHP
PHP后端银联支付及退款实例代码
2017/06/23 PHP
PHP chunk_split()函数讲解
2019/02/12 PHP
Yii 实现数据加密和解密
2021/03/09 PHP
jQuery 处理表单元素的代码
2010/02/15 Javascript
jquery实现的可隐藏重现的靠边悬浮层实例代码
2013/05/27 Javascript
js正则表达式中test,exec,match方法的区别说明
2014/01/29 Javascript
jquery序列化表单以及回调函数的使用示例
2014/07/02 Javascript
innerHTML在IE中报错解决方案
2014/12/15 Javascript
js实现人才网站职位选择功能的方法
2015/08/14 Javascript
使用jQuery获取data-的自定义属性
2015/11/10 Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
2016/07/09 Javascript
window.close(); 关闭浏览器窗口js代码的总结介绍
2016/07/14 Javascript
简单实现JS上传图片预览功能
2017/04/14 Javascript
JS轮播图实现简单代码
2021/02/19 Javascript
JSON 数据格式详解
2017/09/13 Javascript
Python中字典和集合学习小结
2017/07/07 Python
PyTorch学习笔记之回归实战
2018/05/28 Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
2018/07/12 Python
python 解压pkl文件的方法
2018/10/25 Python
Tensorflow之梯度裁剪的实现示例
2020/03/08 Python
Python virtualenv虚拟环境实现过程解析
2020/04/18 Python
Tensorflow tf.nn.depthwise_conv2d如何实现深度卷积的
2020/04/20 Python
Pytorch mask-rcnn 实现细节分享
2020/06/24 Python
Python如何对齐字符串
2020/07/30 Python
药店主任岗位责任制
2014/02/10 职场文书
副总经理任命书
2014/06/05 职场文书
代办社保委托书范文
2014/10/06 职场文书
2014年环保工作总结
2014/11/26 职场文书
2015年小学美术工作总结
2015/05/25 职场文书
2015年团支部年度工作总结
2015/05/27 职场文书
矛盾论读书笔记
2015/06/29 职场文书
初中英语教师个人工作总结2015
2015/07/21 职场文书
音乐研修感悟
2015/11/18 职场文书
详解SQL报错盲注
2022/07/23 SQL Server