有没有办法仅使用javascript获取伪元素的offsetLeft?
我可以通过chrome devtools控制台检查::before元素并获取其offsetLeft。
由于window.getComputedStyle(elem, ':before')返回::before的计算样式,是否有类似的东西可以访问offsetLeft?
有没有办法仅使用javascript获取伪元素的offsetLeft?
我可以通过chrome devtools控制台检查::before元素并获取其offsetLeft。
由于window.getComputedStyle(elem, ':before')返回::before的计算样式,是否有类似的东西可以访问offsetLeft?
window.getComputedStyle()
来获取所有样式,将它们放在一个真实的元素上,然后访问该元素的边界矩形。var pseudoStyles = window.getComputedStyle(parent, ":before");
var pseudoOffsetLeft = parent.offsetLeft + parseFloat(pseudoStyles.left) + "px"
https://jsfiddle.net/4q5uy2af/
这不如getBoundingClientRect好,因为它没有考虑到CSS变换,但是offsetLeft也不会考虑。如果伪元素有position: fixed
,那么可以纯粹地从样式计算出offsetLeft。但是,如果浏览器仍然控制着将其放置在流中,我认为事情会变得更加棘手。您可以将样式复制到一个真实的元素中,但是在检查其替身的offsetLeft时,您需要隐藏伪元素。