У меня возникла проблема с использованием offsetWidth для разных браузеров. Эта разница в результатах вызывает некоторые странные макеты. Я создал очень маленький пример, который отображает то, что я вижу.Cross Browser offsetWidth
HTML
<table id="tbl">
<tr>
<td>Cell 1</td>
<td>Cell 2</td>
</tr>
</table>
<button onclick="calc()">Calculate Offset Width</button>
<div>Cell 1 offsetWidth: <span id="c1offWidth"></span></div>
JS
function calc(){
document.getElementById('c1offWidth').innerHTML =
document.getElementById('tbl').children[0].children[0].offsetWidth;
}
CSS
Когда я бегу это на хром, сафари и оперы возвращаемое значение для ширины ячейки 1 по смещению равно 72. При запуске этого на светлячок и IE9-10 возвращаемое значение 77.
я под впечатлением это был лучший способ рассчитать ширину элемента, включая прокладку и границу.
Есть ли кросс-браузерное решение, которое всегда будет возвращать тот же результат? Я попытался использовать jQuery, но результаты были еще более запутанными.
EDIT Потому что каждый рекомендует использовать внешнюю ширину. Для этого я также создал jsbin. Результаты по-прежнему различаются в разных браузерах. Chrome возвращает 36; IE9-10 и Firefox вернуться 39.
Они нелепость так много невежественных программистов, использующих JQuery, как играть DOH, когда мы должны использовать лепки глину! Используйте встроенную JS, а не некоторую библиотеку ресурсов hog, такую как jQuery. Сделайте свои тесты jsperf! – EasyBB
Ах да, старая 1 глобальная 1 файловая техника. http://www.avacweb.com/17860.js. Отличная модель для замедления работы ваших пользователей. – BradGreens