2013-07-16 4 views
9

Я только что обнаружил и действительно люблю getBoundingClientRect, потому что он включает в себя субпиксельную точность. Это позволило мне создать последовательное выравнивание, даже если пользователь Ctrl+ или Ctrl +-.Поддержка браузера свойств ширины и высоты getBoundingClientRect?

Он имеет свойства top, bottom, left, right, & width & height.

Простая в использовании поддержка браузера по интернету, но не для объектов width и height. Похоже, что это было добавлено после факта. Он работает в Firefox, Chrome и IE10, но как насчет IE8 & IE9? Я не могу проверить их удобно.

+0

Вы можете использовать разработчик в IE10 поместил его в режим IE8? (Я не уверен, что IE10 может это сделать, но IE9 в режиме IE8, вероятно, получит что-то вроде этого.) – Pointy

+0

Также 'width' отличается от' right-left'? – Pointy

+0

* «использовать материал разработчика» * Исторически инструменты F12 в IE смогли точно отразить старые синтаксические анализаторы HTML и CSS, но я заметил, что он не работает точно на старых интерпретаторах JavaScript. –

ответ

9

В IE9 в IE8:

document.body.getBoundingClientRect() 
[object] { 
    right : 2556, 
    top : 0, 
    bottom : 1195, 
    left : 0 
} 

В IE9 в IE9:

document.body.getBoundingClientRect() 
[object ClientRect] { 
    bottom : 1435, 
    height : 1435, 
    left : 0, 
    right : 2544, 
    top : 0, 
    width : 2544 
} 

Так что, я бы сказал, да на IE9, нет на IE8 ...

+2

IE 7 также не поддерживает ширину и высоту. Спасибо Microsoft за шумный опыт программирования! – Phil

+1

Мы обнаружили, что справа налево в IE8 выполняется как целочисленная математика, тогда как ширина в IE9 может быть плавающей точкой. Половина пикселей может быть значительным, если вы пытаетесь выстроить два элемента на странице. –

Смежные вопросы