Существует разница между element.getBoundingClientRect () и range.getBoundingClientRect (), когда диапазон относится к одному и тому же элементу. Если вы откроете эту страницу и выполните следующее:
var el = document.querySelector('#react-container > main > div.titlebar-container > div >
h1');
console.log(el.getBoundingClientRect());
$ DOMRect {x: 156.5, y: 95.5, width: 1352, height: 51, top: 95.5, …}
var range = document.createRange();
range.selectNodeContents(el);
console.log(range.getBoundingClientRect());
$ DOMRect {x: 156.5, y: 90.5, width: 763.828125, height: 61, top: 90.5, …}
, вы получите разные ставки. Мой вопрос: почему это происходит, и какой прямоугольник является более точным?