2013-07-16 73 views
9

我刚刚发现并非常喜欢getBoundingClientRect,因为它包含了子像素精度。这使我可以创建一致的对齐方式,即使用户键入了Ctrl+Ctrl + -浏览器支持getBoundingClientRect的宽度和高度属性?

它具有性能topbottomleftright,& width & height

在互联网上很容易找到浏览器支持,但对于widthheight属性尤其如此。看起来这是在事实之后添加的。它适用于Firefox,Chrome和IE10,但IE8 & IE9呢?我无法方便地测试这些。

+0

你可以使用IE10中的开发人员将其放入IE8模式? (我不确定IE10可以做到这一点,但在IE8模式IE9可能会得到类似的东西。) – Pointy

+0

也'宽度'不同于'右 - 左'? – Pointy

+0

*“使用开发人员的东西”*从历史上看,IE中的F12工具能够准确地反映出旧的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也不支持宽度和高度。感谢微软提供的非常棒的编程体验! – Phil

+1

我们发现IE8中的左右是以整数运算的形式执行的,而IE9中的宽度可以是浮点数。如果您尝试在页面上排列两个元素,则半个像素可能相当大。 –

相关问题