2014-04-24 16 views

cevap

15

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

+1 Cevabınızdaki 'element.getBoundingClientRect' işlevinden bahsetmiş olsanız da, tüm noktaları kapsadığından beri beğendim. –

+1

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. –

İlgili konular