js 设置 获取css样式
先看一段代码,为了体现一会下面说的js用style获取css样式的不同

一:给div设置margin-left(用style设置css样式没什么问题)
box.style.marginLeft="20px";
二:通过style获取div的css属性
上面的例子用三种形式给div设置了样式
1:行间样式 直接写到标签中
2:内联样式 写到head头中
3:外联样式,用link加载

分别获取,这三种形式设置的样式
console.log(box.style.width); console.log(box.style.fontSize); console.log(box.style.color);
运行如下:前两个都没有获取到,都是空

总结:所以用style获取css样式,只能获取到写到标签内的样式。
三:但是可以通过getComputedStyle方法 获得
document.defaultView是个只读对象,返回当前document对象所关联的window对象,没有返回null,(IE9以下不支持),里面的getComputedStyle()方法
getComputedStyle()两个参数,一是元素,而是伪类,如果没有伪类,则为null
var computedStyle = document.defaultView.getComputedStyle(box,null);
返回的是box元素所有样式的一个对象

此时你在获取
console.log(computedStyle.width); console.log(computedStyle.fontSize); console.log(computedStyle.color);
得到可以得到了
哈哈哈,还没结束,因为IE9以下不支持getComputedStyle
IE9以下用currentStyle
box.currentStyle
返回的也是对象,同document.defaultView.getComputedStyle相似,所有这么写
var computedStyle= box.currentStyle?box.currentStyle:document.defaultView.getComputedStyle(box,null); alert(computedStyle.width);


加油!
js 设置 获取css样式的更多相关文章
- js中获取css样式属性值
关于js中style,currentStyle和getComputedStyle几个注意的地方 (1)用js的style只能获取元素的内联样式,内部样式和外部样式使用style是获取不到的.针对css ...
- 为什么我获取不到这个css样式?js原生获取css样式总结
还是自己遇到的一个坑的总结吧!与其说是坑不如说自己学艺不精,让我先哭一会!! 需求 简单就是获取一个css的height (好吧 就是一个这么简单的需求) 实践 好吧 长时间的JQ 我已经对原生无能了 ...
- JS中获取CSS样式的方法
1.对于内联样式,可以直接使用ele.style.属性名(当然也可以用键值对的方式)获得.注意在CSS中单词之间用-连接,在JS中要用驼峰命名法 如 <div id="dv" ...
- js中获取css样式的两种方式
1. 对象.style.样式名 弊端就是只能获取行内样式 2.window.getComputedStyle(对象,null); 最好用第二种方式 <!DOCTYPE html> < ...
- js之如何获取css样式
js之如何获取css样式 一.获取内联样式 1 <div id ="myDiv" style="width:100px;height:100px; border ...
- js中style,currentStyle和getComputedStyle的区别以及获取css样式操作方法
用js的style只能获取元素的内联样式,内部样式和外部样式使用style是获取不到的. currentStyle可以弥补style的不足(可获取内联样式,内部样式和外部样式),但是只适用于IE. g ...
- js获取css样式方法
一.CSS样式共有三种:内联样式(行间样式).内部样式.外部样式(链接式和导入式) <div id="a" style="width: 100px;height: ...
- 每天一个JavaScript实例-展示设置和获取CSS样式设置
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- js中获取css属性
直接获取 window.onload = function() { var but = document.getElementById('button'); var div = document.ge ...
随机推荐
- android之存储篇——SQLite数据库
转载:android之存储篇_SQLite数据库_让你彻底学会SQLite的使用 SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么. 例如:可以在In ...
- Python面试题汇总
原文:http://blog.csdn.net/jerry_1126/article/details/44023949 拿网络上关于Python的面试题汇总了,给出了自认为合理的答案,有些题目不错,可 ...
- ubuntu11.04编译TQ2440 Qt2.2.0 成功
转:http://blog.csdn.net/xuehui869/article/details/8958311 运行主机:ubuntu 32位 11.04QT版本:2.2.0开发板:TQ2440源码 ...
- Java再学习——CopyOnWrite容器
一,定义 CopyOnWrite容器即写时复制的容器.通俗的理解是当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加元素,添加完 ...
- View Controller 视图管理总结
View controller是iOS中顶层的视图载体和控制器,它需要对view负责,管理view的生命周期,相关处室话以及交互事件,除此以外还需要为view提供合适的数据,以供view使用. Vie ...
- Blending(融合)
Src Pixesl: 源像素 : 指的是当前光栅化产生的值 Dst Pixels 目标像素.指的是先前渲染存储在RT中的值 可以用来实现那些效果,诸如水,玻璃 以及其他的,( ...
- 通过UIBezierPath贝塞尔曲线画圆形、椭圆、矩形
/**创建椭圆形的贝塞尔曲线*/ UIBezierPath *_ovalPath=[UIBezierPath bezierPathWithOvalInRect:CGRectMake(, , , )]; ...
- Android Chronometer的正常暂停和继续
最近做了个小实验--一个小的计数秒表,实现开始计时,暂停计时,重置的功能.界面如下
- 《Cortex-M0权威指南》之Cortex-M0编程入门
转载请注明来源:cuixiaolei的技术博客 嵌入式系统编程入门 微控制器是如何启动的 为了保存编译号的二进制程序代码,大多数的现代微控制器都会包含片上flash存储器.有些微控制器还可能有一个独立 ...
- 程序员怎样在复杂代码中找 bug?(简单)
分享下我的debug的经验 1. 优先解决那些可重现的,可重现的bug特别好找,反复调试测试就好了,先把好解决的干掉,这样最节约时间. 2. 对于某些bug没有头绪或者现象古怪不知道从哪里下手,找有经 ...