getBoundingClientRect对Windows / IE11

时间:2016-01-18 20:27:35

标签: javascript internet-explorer-11 getboundingclientrect

在IE11中使用范围对象getBoundingClientRect时,报告错误的数字。它报告高度为128而实际高度为74.它报告顶部偏移为8,而实际顶部偏移为35。

这是一个已知的错误吗?有没有办法在windows ie11中为选择获得准确的数字。



var div = document.querySelectorAll('div')[0];
var t = div.childNodes[0];
var range = document.createRange();
range.setStart(t, 0)
range.setEnd(t, 1)

console.log(range.getBoundingClientRect())

div.text {
  font-size: 64px;
  line-height: 1em;
}

<div class="text">T</div>
&#13;
&#13;
&#13;

以下是参考屏幕截图:

enter image description here

1 个答案:

答案 0 :(得分:2)

编辑:

对我来说,Win 7 64bit IE11.0.9600,运行你的代码片段控制台说:

[object ClientRect]{bottom: 72, constructor: ClientRect {...}, height: 64, left: 8, right: 47.090000152...", top: 8, width: 39.090000152..."}

大致匹配FF 47.0.1值:

DOMRect { x: 8, y: 3.3333282470703125, width: 38.5, height: 73.33334350585938, top: 3.3333282470703125, right: 46.5, bottom: 76.66667175292969, left: 8 }