[Обновление]
исходный ответ был записан до jQuery 1.3 и функций, которые существовали в то время где не соответствующий собой для вычисления общей ширины.
Теперь, как J-P правильно указывает, jQuery имеет функции outerWidth и outerHeight, которые включают border
и padding
по умолчанию, и также margin
, если первый аргумент функции true
[Исходный ответ]
width
, метод больше не требует dimensions
плагин, потому что было добавлено к jQuery Core
, Что необходимо сделать, получают дополнение, поле и значения ширины рамки того конкретного отделения и добавляют их к результату 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
Кто-либо еще натыкающийся на этот ответ должен отметить, что jQuery теперь (> =1.3) имеет outerHeight
/outerWidth
функции для получения ширины включая дополнение/границы, например.
$(elem).outerWidth(); // Returns the width + padding + borders
Для включения поля также просто передайте true
:
$(elem).outerWidth( true ); // Returns the width + padding + borders + margins