js style.width获取不到元素的宽度

jquery用习惯了,用width()就能获取元素的宽度,但有些时候用js获取元素宽度获取不到,document.getElementById("id").style.width,原因:

1.元素未设置宽度值

2.元素设置了宽度值,但,设置在内联或外联样式表中,而非内嵌式的。

虽然这种方式获取不到元素宽度,但是可以设置宽度 document.getElementById("id").style.width = "100px";

只有将元素的宽度设置成内嵌式,才能通过document.getElementById("id").style.width获取宽度

对于没有设置宽度的元素、亦或CSS样式非内嵌式的,js原生写法可以通过offsetWidht来获取宽度。

jquery的width()与js的offsetWidth都可以获取元素的宽度,但有个区别:
.width()的值单纯是内容区域的宽度、不包括内外补丁和border。ie6+和chrome相同。
offsetWidth :包括了内补丁和border,不包括外补丁。

你可能感兴趣的:(前端小技巧,js)