来自elementFromPoint的 Mozilla文档解释了坐标不是物理像素,而是"CSS像素".究竟什么是CSS像素?我的印象是CSS中的像素与物理像素相同.
如果不是这种情况,如何在物理像素和CSS像素之间进行转换?
我相信你知道,CSS 提供了许多不同的单位来表示长度。有些是基于物理、真实世界的测量值(英寸、毫米、点),而有些则是相对于其他东西(em 宽度、百分比)。
但像素不是这两者。最初,它们(如您所假设的)只是用户屏幕上最小的可寻址点。但是,由于多种原因,这是有问题的:
所以 CSS 像素是一个有用的抽象:它们与其他度量有明确定义的关系(至少,在给定的浏览器中......)因此页面设计者可以依赖看起来与他们的设计相当接近的结果,即使浏览器必须更改与实际设备像素的关系。
要回答您的第二个问题,您不会在物理像素和 CSS 像素之间进行转换。这将破坏渲染器正常运行所需的抽象,从而使整个论点落空。Gecko 确实提供了一种确定关系的方法,但仅限于 chrome 脚本 - 正常的网页应该保持幸福不知道......
window.devicePixelRatio;现在所有主流浏览器都支持转换
请参阅https://developer.mozilla.org/en-US/docs/Web/API/Window/devicePixelRatio