解析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实现的元素的left增加N像素 鼠标移开会慢慢的移动到原来的位置
Mar 21 Javascript
JavaScript网页定位详解
Jan 13 Javascript
ExtJS如何设置与获取radio控件的选取状态
Jan 22 Javascript
JavaScript实现Flash炫光波动特效
May 14 Javascript
基于Jquery和html5的7款个性化地图插件
Nov 17 Javascript
基于WebUploader的文件上传js插件
Aug 19 Javascript
使用jquery如何获取时间
Oct 13 Javascript
headjs实现网站并行加载但顺序执行JS
Nov 29 Javascript
js+html5实现复制文字按钮
Jul 15 Javascript
详解Vue.js使用Swiper.js在iOS
Sep 10 Javascript
vue a标签点击实现赋值方式
Sep 07 Javascript
HTML+VUE分页实现炫酷物联网大屏功能
May 27 Vue.js
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代码
2012/07/14 PHP
PHP实现指定字段的多维数组排序函数分享
2015/03/09 PHP
是 WordPress 让 PHP 更流行了 而不是框架
2016/02/03 PHP
PHP中串行化用法示例
2016/11/16 PHP
PHP7新增函数
2021/03/09 PHP
漂亮的仿flash菜单,来自蓝色经典
2006/06/26 Javascript
JQuery 小练习(实例代码)
2009/08/07 Javascript
js字符串转换成数字与数字转换成字符串的实现方法
2014/01/08 Javascript
整理Javascript基础入门学习笔记
2015/11/29 Javascript
WebSocket+node.js创建即时通信的Web聊天服务器
2016/08/08 Javascript
js HTML5手机刮刮乐代码
2020/09/29 Javascript
javascript深拷贝和浅拷贝详解
2017/02/14 Javascript
Vue实现类似Spring官网图片滑动效果方法
2019/03/01 Javascript
实用的 vue tags 创建缓存导航的过程实现
2020/12/03 Vue.js
js实现移动端轮播图滑动切换
2020/12/21 Javascript
Vue+penlayers实现多边形绘制及展示
2020/12/24 Vue.js
[26:24]完美副总裁、DOTA2负责人蔡玮专访:电竞如人生
2014/09/11 DOTA
python发送邮件接收邮件示例分享
2014/01/21 Python
python实现连接mongodb的方法
2015/05/08 Python
python文件操作相关知识点总结整理
2016/02/22 Python
python微信跳一跳系列之棋子定位颜色识别
2018/02/26 Python
python 实现数组list 添加、修改、删除的方法
2018/04/04 Python
Python多线程多进程实例对比解析
2020/03/12 Python
java关于string最常出现的面试题整理
2021/01/18 Python
详解HTML5中的拖放事件(Drag 和 drop)
2016/11/14 HTML / CSS
美国女性运动零售品牌:Lady Foot Locker
2017/05/12 全球购物
美国首屈一指的高品质珠宝设计师和零售商:Allurez
2018/01/23 全球购物
The Kooples美国官方网站:为情侣提供的法国当代时尚品牌
2019/01/03 全球购物
俄罗斯EPL钻石珠宝店:ЭПЛ
2019/10/22 全球购物
印度领先的眼镜电子商务网站:Lenskart
2019/12/16 全球购物
安全生产责任书
2014/03/12 职场文书
产品包装策划方案
2014/05/18 职场文书
西柏坡导游词
2015/02/05 职场文书
债务追讨律师函
2015/06/24 职场文书
借钱欠条怎么写
2015/07/03 职场文书
Python编写冷笑话生成器
2022/04/20 Python