我想获取元素宽度,包含元素本身的宽度,边框(如果有),填充和边距(不是JQuery)?
答案 0 :(得分:2)
对于没有边距的宽度使用Element.getBoundingClientRect(),为边距使用 Window.getComputedStyle() :
var d= document.querySelector('div'),
cs= getComputedStyle(d);
console.log(d.getBoundingClientRect().width +
parseFloat(cs.getPropertyValue('margin-left')) +
parseFloat(cs.getPropertyValue('margin-right'))
);

div {
width: 40px;
padding: 10px;
border: 5px solid green;
margin-left: 15px;
margin-right: 5px;
}

<div>
This is a test
</div>
&#13;
即使上面的CSS仅使用整数,结果也可能有小数。在Chrome中,边框样式5px
会产生4.54545450210571px
的实际边框。