[Оновлення]
Оригінальна відповідь була написана до jQuery 1.3, і функції, які існували в той час, коли вони не були адекватними самі по собі для обчислення всієї ширини.
Тепер, як правильно стверджує JP , jQuery має функції externalWidth і externalHeight, які включають 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
Розділіть на кілька рядків, щоб зробити його більш читабельним
Таким чином, ви завжди отримаєте правильне обчислене значення, навіть якщо ви зміните значення padding або margin з css