sadece marj, dolgu ve sınır özellikleri için piksel değerlerine dikkatli davranmalıyız, aşağıdakileri yapabilirsiniz:
// we're assuming a reference to your element in a variable called 'element'
var style = element.currentStyle || window.getComputedStyle(element),
width = element.offsetWidth, // or use style.width
margin = parseFloat(style.marginLeft) + parseFloat(style.marginRight),
padding = parseFloat(style.paddingLeft) + parseFloat(style.paddingRight),
border = parseFloat(style.borderLeftWidth) + parseFloat(style.borderRightWidth);
alert(width + margin - padding + border);
Eğer değerler diğer tür dikkatli davranmalıyız (ems, puan veya auto
gibi değerler), Size this answer numaralı telefondan bahsetmek istiyorum.
+1 Cevabınızdaki 'element.getBoundingClientRect' işlevinden bahsetmiş olsanız da, tüm noktaları kapsadığından beri beğendim. –
Genişlikleri css'de "border-left-width" veya "border-right-width" olarak bildirmeniz gerektiğini unutmayın. Kenar genişliğini "kenarlık genişliği" veya yalnızca "kenarlık" olarak bildirilen bir stilde ayrıştırmayacaktır. –