$ (document) .width () против $ ('BODY'). width () в IE9 - PullRequest
2 голосов
/ 21 октября 2011

Я работаю над типом плагина 'spotlight', который помещает четыре прямоугольника вокруг целевого элемента (сверху, слева, снизу и справа).Таким образом, блоки должны быть расположены и измерены программно.

Я встречал случай, когда $ (document) .width () возвращает согласованное значение в Firefox, Chrome, IE7 и IE8, но нев IE9 - значение в IE9 на 17px больше, чем у других.Однако, если я переключу его на $ ('BODY'). Width (), значение станет постоянным во ВСЕХ браузерах.К сожалению, я не могу опубликовать это, потому что не могу воспроизвести его за пределами среды разработки.

Что может быть причиной этого несоответствия между телом и шириной документа ... и ТОЛЬКО в IE9 (помните, IE7 / 8 не влияет)?Я проверил режим стандартов и отступы / поля обнуляются для HTML / BODY.

1 Ответ

3 голосов
/ 21 октября 2011

Я думаю, что дополнительные 17px, которые вы испытываете, это полоса прокрутки y, которую вы обычно не имеете в jsfiddle, и она учитывается в документе, но не в теле.

Да, это связано с тем, что браузеры не последовательно применяют блочную модель / стандарты.Theres мало что вы можете сделать с этим, кроме работы вокруг него.

...