[Mise à jour]
La réponse originale a été écrite avant jQuery 1.3, et les fonctions qui existaient à l'époque où ne suffisent pas par eux-mêmes pour calculer la largeur.
Maintenant, comme J-P indique correctement, jQuery a les fonctions outerWidth et outerHeight qui comprennent le border
et padding
par défaut, et aussi le margin
si le premier argument de la fonction est true
[Original réponse]
La méthode width
ne nécessite plus le plugin dimensions
, b omme il a été ajouté à la jQuery Core
Ce que vous devez faire est d'obtenir le rembourrage, la marge et les valeurs de largeur frontière de ce div particulier et les ajouter au résultat de la méthode width
Quelque chose comme ceci:
var theDiv = $("#theDiv");
var totalWidth = theDiv.width();
totalWidth += parseInt(theDiv.css("padding-left"), 10) + parseInt(theDiv.css("padding-right"), 10); //Total Padding Width
totalWidth += parseInt(theDiv.css("margin-left"), 10) + parseInt(theDiv.css("margin-right"), 10); //Total Margin Width
totalWidth += parseInt(theDiv.css("borderLeftWidth"), 10) + parseInt(theDiv.css("borderRightWidth"), 10); //Total Border Width
divisé en plusieurs lignes pour le rendre plus lisible
de cette façon, vous obtiendrez toujours la valeur calculée correcte, même si vous ch ange Les valeurs de remplissage ou de marge de la css
En général, je préfère croire que jQuery faire le calcul de moi-même. Le problème est que la fonction width() ne précise pas ce qu'elle fait dans le cas de "box-sizing: border-box". Je l'ai juste testé, et il renvoie la largeur intérieure, à l'exclusion du rembourrage, etc. Cela peut être ou ne pas être correct; différentes personnes peuvent s'attendre à des choses différentes. Donc l'exemple de code ci-dessus fonctionne réellement, mais ce n'est peut-être pas le moyen le plus fiable. Comme indiqué dans d'autres réponses, je recommande d'utiliser la fonction outerWidth() à la place. Il promet au moins ce qu'il est censé faire dans la documentation. –
La fonction outerWidth/outerHeight n'existait pas quand je l'ai écrit cette réponse. –
+1 outerWidth était ce que je cherchais. – bendewey