jQuery в IE11 - разница между $(document).width() и $("html").width()
Итак, у меня есть это в IE11...
Вокруг (думаю...)
console.log($(document).width()); // 808px;
НЕ КРУГЛЫЙ
console.log($("html")[0].getBoundingClientRect().width); // 807.30993px;
КРУГЛЫЙ ВНИЗ (или до ближайшего целого числа)
console.log($("html").width()); //807px;
Очевидно, что $(document) и $("html") одинаковы, и jQuery округляет элемент html вниз, а не вверх, как в браузере. Или IE11 дает $ (документ) дополнительное пространство, увеличивая количество пикселей ВЫШЕ, чем HTML?
Я думал, что HTML должен был представлять весь документ?
МОЙ ВОПРОС:
Должны ли они быть одинаковой ширины? Как в Firefox, Chrome и т. Д.
1 ответ
Вот ответ на похожий вопрос: в JavaScript ключевое слово document является дескриптором объекта, который содержит HTMLDocument. Таким образом, они не совпадают, документ является объектом, который также содержит HTML для страницы.
Теперь, когда вы получите ширину из HTML и документа.
console.log($("html").width());
дает вам ширину HTML.
а также console.log($(document).width());
дает ширину видимой части документа, поэтому ширина <html>
само по себе, но есть разница, если вы применили маржу к html
то ширина документа sum of width of html and the margin applied to it
,
Посмотрите этот пример http://jsfiddle.net/bbke9n59/
<div style='background:red;height:30px;'></div>
html{
margin:20px;
}
здесь, в моем браузере, я получаю,
console.log('html='+$("html").width()); // width 630
console.log('document='+$(document).width());// width 670
Точно, разница в ширине 40px, то есть только поле, примененное к html
Теперь это все о Chrome и Firefox,
О IE
IE-9, когда я запускаю ту же страницу на IE-9
console.log('html='+$("html").width()); // width 570
console.log('document='+$(document).width());// width 570
Нет разницы в ширине HTML и документа (должно было быть на самом деле)
IE-11, когда я запускаю ту же страницу на IE-11
console.log('html='+$("html").width()); // width 517
console.log('document='+$(document).width());// width 557
Точная разница 40. Так же, как показали Chrome и Firefox.
Так что я больше не могу воспроизвести проблему округления (в любом браузере), так что для меня, я думаю, проблема не в округлении с использованием jquery(если бы это было проблемой, то jquery бы округлил ширину за document
а также html
и то и другое делают их одинаковой ширины)