Tôi chỉ muốn thêm kinh nghiệm của tôi ở đây, mặc dù câu hỏi đã cũ: Sự đồng thuận ở trên dường như là cách làm tròn của jQuery hiệu quả cũng tốt như một phép tính không có xung quanh - nhưng điều đó dường như không đúng trong trường hợp tôi đang làm .
Nói chung, phần tử của tôi có chiều rộng linh hoạt, nhưng nội dung thay đổi động thông qua AJAX. Trước khi chuyển đổi nội dung, tôi tạm thời khóa các kích thước của phần tử để bố cục của tôi không bị trả lại trong quá trình chuyển đổi. Tôi thấy rằng sử dụng jQuery như thế này:
$element.width($element.width());
đang gây ra một số điều thú vị, như có sự khác biệt về pixel phụ giữa chiều rộng thực tế và chiều rộng được tính toán. (Cụ thể, tôi sẽ thấy một từ nhảy từ dòng văn bản này sang dòng văn bản khác, cho biết chiều rộng đã được thay đổi, không chỉ bị khóa.) Từ một câu hỏi khác - Lấy chiều rộng thực tế, dấu phẩy động của một phần tử - Tôi tìm thấy ra điều đó window.getComputedStyle(element).width
sẽ trả về một phép tính không được bao quanh. Vì vậy, tôi đã thay đổi mã trên thành một cái gì đó như
var e = document.getElementById('element');
$('#element').width(window.getComputedStyle(e).width);
Và với mã RẰNG - không bị trả lại buồn cười! Trải nghiệm đó dường như cho thấy rằng giá trị không được bao quanh thực sự quan trọng đối với trình duyệt, phải không? (Trong trường hợp của tôi, Phiên bản Chrome 26.0.1410.65.)