Просто хотел добавить сюда свой опыт, хотя вопрос старый: консенсус, приведенный выше, похоже, заключается в том, что округление jQuery эффективно так же хорошо, как и необоснованный расчет, но это не похоже на то, что я делал .
Обычно мой элемент имеет плавную ширину, но содержимое изменяется динамически через AJAX. Перед переключением содержимого я временно блокирую размеры элемента, чтобы мой макет не раскачивался во время перехода. Я обнаружил, что с помощью jQuery вот так:
$element.width($element.width());
вызывает некоторую забавность, например, есть субпиксельные различия между фактической шириной и расчетной шириной. (В частности, я увижу, как слово перескакивает с одной строки текста на другую, указывая на то, что ширина была изменена, а не просто заблокирована.) Из другого вопроса - Получение фактической ширины элемента с плавающей запятой - я обнаружил out, window.getComputedStyle(element).widthкоторый вернет необоснованный расчет. Поэтому я изменил приведенный выше код на что-то вроде
var e = document.getElementById('element');
$('#element').width(window.getComputedStyle(e).width);
А с ЭТОМ кодом - никаких забавных подпрыгиваний! Этот опыт, кажется, предполагает, что необоснованное значение действительно имеет значение для браузера, верно? (В моем случае это версия Chrome 26.0.1410.65.)