全栈JavaScript之路( 二十五 )訪问元素的样式
不论什么支持style 特性的元素在 ,在其DOM 节点 对象中都有一个 style 属性与之相应。 这个style 对象是 CSSStyleDeclaration类型的实例,包括着html style特性的全部样式信息。但不包括 外部样式或者 内嵌样式层叠而来的样式。
在style特性中。提定的不论什么css属性,都将表现为这个style 对象的属性。对于使用短划线的的属性名。必须转化为驼峰大写和小写形式,多数情况下都能够这样转换。
也有例外, float 是javascript keyword,不能直接转换,在ie中 转换为 styleFloat,在其他浏览器中,转换为 cssFloat.
假设元素没有设置style属于,哪么style会有一些默认的属性。
1. dom2 来style对象定义了一些属性与方法
- cssText: 通过它能够訪问style特性中的代码
- length: 应用给元素的CSS属性的数量
- parentRule: 表示CSS信息的CSSRule 对象
- getPropertyValue(propertyName): 返回 指定属性的值。
- getPropertyCSSvalue(propertyName):返回包括 给点属性值的 CSSValue 对象。({cssValueType:'',cssText:""})
- getPropertyPriority(propertyName): 假设给点的属生使用了 !mportant,则返回 importtant 假设没有,则返回 空字符串。
- item(index),返回指定位置的CSS属性的名称
- removeProperty(propertyName);从样式中删除给点属性
- setProperty(propentyName,value,priority),将给定属性设为指定的值,并加上优先权(空字串或者 !important)
2. 计算样式: “DOM2 级样式”增强了document.defaultView。提供了 getComputedStyle()方法。
这种方法接受两个參数:要取得计算样式的元素和一个伪元素字符串(比如":after")。
假设不须要伪元素信息,第二个參数能够是null。getComputedStyle()方法返回一个CSSStyleDeclaration 对象(与style 属性的类型同样)。当中包括当前元素的全部计算的样式。
(IE 中 没有 getComputedStyle()方法,可是在IE中,每一个有style属性的元素 都有一个 currentStyle 属性, 它是CSSStyleDeclaration 类型的实例)
边框属性可能会也可能不会返回样式表中实际的border 规则(Opera 会返回,但其它浏览器不会)。
存在这个区别的原因是不同浏览器解释综合(rollup)属性(如border)的方式不同,
由于设置这样的属性实际上会涉及非常多其它属性。
在设置border 时。 实际上是设置了四个边的边框宽度、颜色、样式属性( border-left-width 、border-top-color 、border-bottom-style 。 等等)。
因此, 即使computedStyle.border 不会在全部浏览器中都返回值,但computedStyle.borderLeftWidth 会返回值。
全栈JavaScript之路( 二十五 )訪问元素的样式的更多相关文章
- 全栈JavaScript之路(十九)HTML5 插入 html标记 ( 一 )innerHTML 与outerHTML
在须要给文档插入大量的html 标记下.通过DOM操作非常麻烦,你不仅要创建一系列的节点,并且还要小心地依照顺序把它们接结起来. 利用html 标签 插入技术,能够直接插入html代码字符串,简单.高 ...
- 全栈JavaScript之路(十八)HTML5 自己定义数据属性
HTML5 规范规定,用户能够为元素 自己定义非标准属性, 可是要加入 data- 前缀. 目的是为元素提供与页面渲染无关的信息.或者语义信息.这些属性名能够任意加入,仅仅要带上前缀 data- 开头 ...
- 全栈JavaScript之路(十四)HTML5 中与class属性相关的扩充
1. getElementByClassName() :支持getElementsByClassName()方法的浏览器有IE 9+.Firefox 3+.Safari 3.1+.Chrome 和 O ...
- 全栈JavaScript之路(十六)HTML5 HTMLDocument 类型的变化
HTML5 扩展了 HTMLDocument, 添加了新的功能. 1.document.readState = 'loading' || 'complete' //支持readyState 属性的浏 ...
- 全栈JavaScript之路(十)学习 DocumentFragment 类型 节点
DocumentFragment 类型节点,代表一个文档片段,是一种轻量级的'文档' 对象.能够包括其他类型节点,并有能力訪问.操作当中的节点,可是在文档中没有文档标记,相当于是一个页面不可见的容器. ...
- “全栈2019”Java多线程第二十五章:生产者与消费者线程详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- “全栈2019”Java多线程第十五章:当后台线程遇到finally
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- “全栈2019”Java异常第十五章:异常链详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java异 ...
- “全栈2019”Java第八十五章:实现接口中的嵌套接口
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- “全栈2019”Java第七十五章:内部类持有外部类对象
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
随机推荐
- iTOP-4412开发板使用
使用环境:win7 旗舰64位,VMware11 使用使用板上提供的ubuntu12.04,用VMWARE直接打开虚拟机,因为之前开发epc9600开发板,所以虚拟机网络已经设置过,加载ubuntu1 ...
- NOI2018归程(Kruskal重构树)
题目描述 本题的故事发生在魔力之都,在这里我们将为你介绍一些必要的设定. 魔力之都可以抽象成一个 n 个节点.m 条边的无向连通图(节点的编号从 1 至 n). 我们依次用 l,a 描述一条边的长度. ...
- vim学习4
分频 参考 http://coolshell.cn/articles/1679.htm
- Spring异步执行(@Async)2点注意事项
Spring中可以异步执行代码,注解方式是使用@Async注解. 原理.怎么使用,就不说了. 写2点自己遇到过的问题. 1.方法是公有的 // 通知归属人 @Async public void not ...
- iOS 友盟分享
iOS 友盟分享 这个主要是提到怎样通过友盟去自己定义分享的步骤: 一.肯定要去友盟官网下载最新的SDK包,然后将SDK导入到你的project目录里面去. 二.注冊友盟账号.将你的APP加入到你的账 ...
- 在安卓(手机)上运行 Ubuntu (Linux)
在安卓(手机)上运行 Ubuntu (Linux) 由于x86 和 arm 是跨平台的,所使用的编译器自然也不同.如果要在电脑上编译安卓手机上的程序,则需在电脑端建立ARM交叉编译环境,这个过程是在耗 ...
- 循环体(for/while)循环变量的设置
1. 求滑动(移动)平均(moving average) double partialSum = 0; for (int i = 0; i < M-1; ++i) partialSum += A ...
- nodejs连接mysql突然中断问题解决方案
db/index.js数据库配置文件 一.在数据库连接失败的情况下,回调函数,再次发起连接,直到连接成功为止. handleDisconnect(){ this.connection.connect( ...
- robotframework Selenium2+RFS自动化测试
支持浏览器版本:Google Chrome (64位) 52.0.2743.82 正式版 52.0.2743.6_chrome_installer 64位 下载地址:http://www.online ...
- docker中发布springboot
http://note.youdao.com/noteshare?id=81a603b1b33731aaef7b7755c70f33fb