JavaScript 读取元素的CSS信息的代码 |
比如为某个HTML元素级联了一组样式信息,其中width属性的值为80px 。然后调用脚本读取这个值,得到的结果总是一个空字符串,而事实上我想得到"80px" 。针对这种情况,David Flanagan在《JavaScript 权威指南》(第五版)一书中给出了解决方案 。 复制代码 代码如下: var p = document.getElementsByTagName("p")[0]; // Get first paragraph of doc var typeface = ""; // We want its typeface if (p.currentStyle) // Try simple IE API first typeface = p.currentStyle.fontFamily; else if (window.getComputedStyle) // Otherwise use W3C API typeface = window.getComputedStyle(p, null).fontFamily; 计算样式很快,而且它并不总是提供你想要的信息 。考虑刚才字型的例子 。font-family属性接受了一个逗号分隔的列表,轻松的为跨平台提供了被期望的字体类型 。当你查询被计算的fontFamily属性时,你很容易得到确定的加在元素上的font-family样式的值 。这或许返回一个值类似于"arial,helvetica,sans-serif",却并不告诉你究竟哪个字型才是真正正在使用的 。类似的,如果一个元素没有被绝对定位,而企图通过被计算样式的top和left属性查询它的位置和大小,结果总是返回"auto" 。这是一个完全合法的CSS值,只是它并不是你想要的 。 |