Я искал ответ на этот вопрос, но не смог найти правильный.Давайте возьмем следующий веб-сайт в качестве примера: https://www.atlassian.com/devops
Перед следующим элементом есть псевдоэлемент:
var e = document.querySelector('li[class=language-selector]');
e.getClientRects();
top: 9797
bottom: 9818
left: 78
right: 162
x: 78
y: 9797
width: 85
height: 21
Функция window.getComputedStyle возвращает некоторые значения для top, bottom,left и т.д .:
window.getComputedStyle(e, ':before').top; //10.5
window.getComputedStyle(e, ':before').bottom; //-9.5
window.getComputedStyle(e, ':before').left; //-26
window.getComputedStyle(e, ':before').right; //90.6
window.getComputedStyle(e, ':before').x; //0
window.getComputedStyle(e, ':before').y; //0
window.getComputedStyle(e, ':before').width; //20
window.getComputedStyle(e, ':before').height; //20
Сначала это кажется относительными значениями базового элемента, но если я проверяю другой элемент на той же странице, поведение кажется несовместимым:
var e3=document.querySelectorAll('blockquote[class="cite large-quote"]')[0];
top: 2303
bottom: 2408
left: 78
right: 1038
x: 78
y: 2303
width: 960
height: 105
Функция window.getComputedStyle возвращает следующее:
window.getComputedStyle(e3, ':before').top; //-25
window.getComputedStyle(e3, ':before').bottom; //-50
window.getComputedStyle(e3, ':before').left; //0
window.getComputedStyle(e3, ':before').right; //889.25
window.getComputedStyle(e3, ':before').x; //0
window.getComputedStyle(e3, ':before').y; //0
window.getComputedStyle(e3, ':before').width; //70.75
window.getComputedStyle(e3, ':before').height; //180
Например, верх и низ первого псевдоэлемента равны 10,5 и -9,5, а (10,5) - (-9,5) - это высотапсевдоэлемент (20).
Верх и низ второго псевдоэлемента составляют -25 и -50, но высота псевдоэлемента равна 180. Они оба имеют "абсолютное" в своем "положении"приписывать.Таким образом, поведение противоречиво.
Будет очень признательно, если кто-то сможет пролить свет на то, как получить положение или координаты псевдоэлементов.