CSS Object Model 介绍及浏览器差异化分析(3)CSS2 Module
 
- UID
- 1066743
|
CSS Object Model 介绍及浏览器差异化分析(3)CSS2 Module
CSS2 Module 这个模块只有一个接口 CSS2Properties,这个接口提供了一种方便的方式来获取和设置 CSSStyleDeclaration 的属性值。实际上这个接口没有包含任何方法,只有对应了 CSS2 规范的属性值。直接访问一个 CSSStyleDeclaration 的属性值就相当于调用了其 getPropertyValue()或 setPropertyValue()的方法。
需要注意的是, CSSStyleDeclaration 的实例是可以直接类型转换为 CSS2Properties 的,这也就是为什么我们在浏览器环境中可以直接访问 CSSStyleDeclaration 实例的各种 CSS2 属性的原因(JavaScript 是一种弱类型化语言,每个对象都是用 var 来声明,不需要显示地做类型转换)。
对于浏览器而言,IE,FireFox 和 Chrome 都实现了 CSS2Properties 接口。但是需要指出的是直接访问 CSS2 属性可能不同的浏览器结果会有些差异,但是这已经不在本文讨论的范畴,所以就不展开详细讨论。
结束语Web Application 开发者很难避免浏览器对 DOM 支持不一致带来的各种问题。遇到这种问题的时候就需要去查 W3C Specification,做测试用例来实际证明这些差异。
本文将 W3C Specification 中和 CSS OM 相关的模块统一分析,从规范出发先讲述各个接口的定义,然后分别在 IE,FireFox 和 Chrome 中对接口定义的大量属性和方法进行测试,最后将测试结果汇总进行对比。
通过本文可以让 Web 开发工程师对 CSS OM 有一个直观系统的认识,帮助工程师在日常的工作中避免浏览器的差异导致的程序问题,从而开发出更加健壮的 Web 程序。 |
|
|
|
|
|