[Cập nhật]
Câu trả lời ban đầu được viết trước jQuery 1.3 và các hàm tồn tại vào thời điểm không đủ để tự tính toán toàn bộ chiều rộng.
Bây giờ, khi JP khẳng định một cách chính xác, jQuery có các chức năng outerWidth và outerHeight trong đó bao gồm các border
và padding
theo mặc định, và cũng là margin
nếu đối số đầu tiên của hàm làtrue
[Câu trả lời gốc]
Các width
phương pháp không còn đòi hỏi các dimensions
plugin, bởi vì nó đã được thêm vàojQuery Core
Những gì bạn cần làm là lấy các giá trị đệm, lề và độ rộng đường viền của div cụ thể đó và thêm chúng vào kết quả của width
phương thức
Một cái gì đó như thế này:
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
Chia thành nhiều dòng để dễ đọc hơn
Bằng cách đó, bạn sẽ luôn nhận được giá trị được tính toán chính xác, ngay cả khi bạn thay đổi giá trị đệm hoặc giá trị lề từ css