javascript 中 offsetWidth 获得的并不是 真实的宽度 不等于 style.width ;
offetWidth 实际上获得的是物体的盒模型尺寸。 包括 border padding 等尺寸。obj.style.width 只能获得行间样式宽度,不能获得样式表中的样式中的宽度获取不在行间宽度的方法
function getStyle(obj,name){ if(obj.currentStyle){ return obj.currentStyle[name]; /*仅支持IE*/ } else{ return getComputedStyle(obj,false)[name]; /*w3c 标准*/ //兼容IE和火狐 return window.getComputedStyle.getPropertyValue(name); }}
Dom中的getPropertyValue方法可以用来获取元素中指定的css属性值.该方法支持W3C标准.与IE中的currentStyle方法作用相同.都是根据指定的css属性名称来获取属性值.比如要获取某div的宽度是多少,文字排放text-align是怎么对齐的,以及position如何定位的.他们的区别是:1:getPropertyValue必须配合getComputedStyle方法一起使用.2:getPropertyValue支持W3C标准.但不支持IE浏览器,3:currentStyle非W3C标准.只支持IE.不能在FF等浏览器下使用.如果想在多浏览器里实现这种效果,必须根据判断浏览器来配合使用.我在下面会给出一个兼容IE和FF等浏览器获取元素css属性值的例子.
语法:
css_value=window.getComputedStyle.getPropertyValue(css_name)
返回值:
css_value:返回对某个css属性值的引用.如:text-align值,position值等.
参数
window.getComputedStyle:直接使用window对象调用getComputedStyle方法来获取所有可用的css属性.css_name:要获取的css属性值的名称.比如:text-align,position,background等等