2012-07-26 12 views
5

Estoy usando el método height()/width() pero su valor de retorno sin sus valores de margen y margen. No estoy teniendo problema para calcular el total con/valores de altura.¿Cómo calcular el ancho y la altura del elemento con sus valores de relleno/margen utilizando menos código?

De esta manera funciona, pero mi problema es; es demasiado largo para calcularlos todos. ¿Hay alguna forma de calcular estos con menos código sin errores?

Here is jsFiddle example.

jQuery:

var ele = $('div'); 

var eleW = ele.width(); 
var eleH = ele.height(); 

alert(eleW);//returning 200 
alert(eleH);//returning 100 

var eleMR = parseInt(ele.css('margin-right')); 
var eleML = parseInt(ele.css('margin-left')); 
var eleMT = parseInt(ele.css('margin-top')); 
var eleMB = parseInt(ele.css('margin-bottom')); 

var elePR = parseInt(ele.css('padding-right')); 
var elePL = parseInt(ele.css('padding-left')); 
var elePT = parseInt(ele.css('padding-top')); 
var elePB = parseInt(ele.css('padding-bottom')); 

var eleTotalWidth = eleMR + eleML + elePR + elePL + eleW; 
var eleTotalHeight = eleMT + eleMB + elePT + elePB + eleW; 

alert(eleTotalWidth);//returning 147 
alert(eleTotalHeight);//returning 122 

css:

div { 
     float:left; width:100px; height:200px; background-color:#000; 
     margin:5px 3px 2px 4px; padding:10px 20px 5px; 
    }​ 

Respuesta

11

Uso outerWidth(); y outerHeight();

var ele = $('div'); 

var eleW = ele.outerWidth(true); 
var eleH = ele.outerHeight(true); 
+0

http://jsfiddle.net/B7fMW/7/ Thi s está calculando sin márgenes, pero sigue siendo un código menor que el mío (: –

+0

Según @WouterH necesitamos pasar la palabra verdadera tal como se menciona en la documentación. Pasar cierto también incluirá su margen. – Vins

+0

+1 por su respuesta ... agradable –

Cuestiones relacionadas