老虎美食博客

和老虎一起美食一下吧!

« JavaScript 获得页面区域大小的代码 Last Day of Month »

准确获取指定元素 CSS 属性值

当处理 DOM 元素的 CSS 属性时,我们经常会遇到一个问题:明明页面上已经定义了 CSS 属性值,但在获取的时候却为空,这是因为任何样式表文件或内联 CSS 预设的样式信息并不能可靠地反映到 style 属性上,本文向你介绍准确获取指定元素 CSS 属性值的方法。 


--------------------------------------------------------------
点此浏览示例文件
--------------------------------------------------------------


Javascript:
  1.  
  2. <script type="text/javascript">
  3.  
  4. // 说明:准确获取指定元素 CSS 属性值
  5. // 作者:John Resig 《Pro JavaScript Techniques》
  6. // 来源:http://bbs.blueidea.com/viewthread.php?tid=2745446
  7. // 整理:CodeBit.cn ( http://www.CodeBit.cn )
  8.  
  9. function getStyle( elem, name )
  10. {
  11. //如果该属性存在于style[]中,则它最近被设置过(且就是当前的)
  12. if (elem.style[name])
  13. {
  14. return elem.style[name];
  15. }
  16.  
  17. //否则,尝试IE的方式
  18. else if (elem.currentStyle)
  19. {
  20. return elem.currentStyle[name];
  21. }
  22.  
  23. //或者W3C的方法,如果存在的话
  24. else if (document.defaultView && document.defaultView.getComputedStyle)
  25. {
  26. //它使用传统的"text-Align"风格的规则书写方式,而不是"textAlign"
  27. name = name.replace(/([A-Z])/g,"-$1");
  28. name = name.toLowerCase();
  29.  
  30. //获取style对象并取得属性的值(如果存在的话)
  31. var s = document.defaultView.getComputedStyle(elem,"");
  32. return s && s.getPropertyValue(name);
  33.  
  34. //否则,就是在使用其它的浏览器
  35. }
  36. else
  37. {
  38. return null;
  39. }
  40. }
  41.  
  42. </script>
  43.  



本文摘录自 John Resig 的《Pro Javascript Techniques》
蓝色 mozart0 版主发布了中文翻译:
http://bbs.blueidea.com/viewthread.php?tid=2733371
  • 相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Spirit Build 80605 Code detection by Codefense

Copyright 2007 老虎美食博客. Some Rights Reserved.