[Update]
Первоначальный ответ был написан до jQuery 1.3, и функции, которые существовали в то время, когда сами по себе не могли рассчитать всю ширину.
Теперь, как правильно указывает JP , jQuery имеет функции externalWidth и outerHeight , которые по умолчанию включают border
и padding
, а также margin
, если первый аргумент функции true
[Оригинальный ответ]
Для метода width
больше не требуется плагин dimensions
, поскольку он был добавлен в jQuery Core
Что вам нужно сделать, это получить значения padding, margin и border этого конкретного div и добавить их к результату width
метода
Примерно так:
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
Разделить на несколько строк, чтобы сделать его более читабельным
Таким образом, вы всегда получите правильное вычисленное значение, даже если вы измените значения отступа или поля из CSS