6

IE11 で getBoundingClientRect に範囲オブジェクトを使用すると、間違った数値が報告されます。実際の高さは 74 ですが、高さは 128 と報告されます。実際の上部オフセットは 35 ですが、上部オフセットは 8 と報告されます。

これは既知のバグですか? 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>

参照用のスクリーンショットを次に示します。

ここに画像の説明を入力

4

1 に答える 1

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 }
于 2016-10-15T02:53:03.170 に答える