解析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 相关文章推荐
表单切换,用回车键替换Tab健(不支持IE)
Jul 20 Javascript
JS中获取函数调用链所有参数的方法
May 07 Javascript
浅析$.getJSON异步请求和同步请求
Jun 06 Javascript
AngularJS模块详解及示例代码
Aug 17 Javascript
Bootstrap基本插件学习笔记之按钮(21)
Dec 08 Javascript
vue中各选项及钩子函数执行顺序详解
Aug 25 Javascript
vue引入axios同源跨域问题
Sep 27 Javascript
vue数据初始化initState的实例详解
Apr 11 Javascript
jQuery实现的图片点击放大缩小功能案例
Jan 02 jQuery
node 版本切换的实现
Feb 02 Javascript
JSONP 的原理、理解 与 实例分析
May 16 Javascript
jQuery--遍历操作实例小结【后代、同胞及过滤】
May 22 jQuery
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
初学者入门:细述PHP4的核心Zend
2006/09/05 PHP
Apache, PHP在Windows 9x/NT下的安装与配置 (一)
2006/10/09 PHP
PHP弱类型的安全问题详细总结
2016/09/25 PHP
详解PHP字符串替换str_replace()函数四种用法
2017/10/13 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
2018/05/12 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
jQuery模拟超链接点击效果代码
2013/04/21 Javascript
Jquery解析json数据详解
2013/12/26 Javascript
使用typeof判断function是否存在于上下文
2014/08/14 Javascript
jQuery中DOM树操作之复制元素的方法
2015/01/23 Javascript
javascript实现随时变化着的背景颜色
2015/04/02 Javascript
JavaScript中window.open用法实例详解
2015/04/15 Javascript
使用JavaScript和CSS实现文本隔行换色的方法
2015/11/04 Javascript
一个用jquery写的判断div滚动条到底部的方法【推荐】
2016/04/29 Javascript
jquery动态添加文本并获取值的方法
2016/10/12 Javascript
jQuery实现背景滑动菜单
2016/12/02 Javascript
Vue.js双向绑定实现原理详解
2016/12/22 Javascript
angularjs过滤器--filter与ng-repeat配合有奇效
2017/04/20 Javascript
Rollup处理并打包JS文件项目实例代码
2018/05/31 Javascript
nvm、nrm、npm 安装和使用详解(小结)
2019/01/17 Javascript
JS 自执行函数原理及用法
2019/08/05 Javascript
python操作MongoDB基础知识
2013/11/01 Python
Django框架中处理URLconf中特定的URL的方法
2015/07/20 Python
Python之父谈Python的未来形式
2016/07/01 Python
Python使用三种方法实现PCA算法
2017/12/12 Python
python try 异常处理(史上最全)
2019/03/07 Python
Python post请求实现代码实例
2020/02/28 Python
Python爬取网页信息的示例
2020/09/24 Python
Rodd & Gunn澳大利亚官网:新西兰男装品牌
2018/09/25 全球购物
家长给小学生的评语
2014/01/30 职场文书
商业计算机应用专业自荐书
2014/06/09 职场文书
三严三实对照检查材料
2014/09/22 职场文书
2015年圣诞节活动总结
2015/03/24 职场文书
给朋友的道歉短信
2015/05/12 职场文书
行政处罚事先告知书
2015/07/01 职场文书
一年之计:2019年下半年的计划
2019/05/07 职场文书