是否可以在不使用物理对象或对角线测量的情况下获得用户物理屏幕尺寸?

时间:2011-07-26 13:55:46

标签: javascript html css

问题说的都是真的。我希望能够以实际尺寸显示某些东西,例如,如果浏览器中显示的内容为20厘米,我希望能够测量它,实际上是20厘米。

到目前为止,我遇到的解决方案考虑了屏幕的对角线分辨率(例如21.5英寸)和屏幕分辨率来计算像素的大小。

另一种方法是要求用户在屏幕上放置标准尺寸的卡片(如银行卡)并测量边缘以计算尺寸。

有没有办法在屏幕上没有物理对象或用户不需要知道对角线屏幕尺寸的情况下这样做?

如果您知道除我提到的解决方案之外的任何其他解决方案,请告诉我。

2 个答案:

答案 0 :(得分:9)

你不能绝对肯定地做到这一点,不。例如,如果显示设备不是屏幕,而是视频投影仪,则有效尺寸将取决于投影仪与墙壁的距离,这可能会在操作系统未获得任何反馈的情况下发生变化。


大多数操作系统都有一些dpi设置(每英寸点数),可能由用户或系统管理员配置,硬编码(如果视频设备内置且无法更改,如笔记本电脑屏幕),或者可能自动发现(如果视频协议支持此功能)。

浏览器将使用此设置或类似的浏览器设置来计算CSS中使用的绝对大小,例如cmmminpt,等等。

因此,您可以简单地依靠浏览器向右显示,或者告诉您的用户设置正确的设置。 (当然,在投影尺寸为3×4米的视频投影机上,你真的不想显示20厘米的物体。)

答案 1 :(得分:1)

有人建议在其他地方制作一个隐藏的1“div然后查询像素宽度将获得一个虚拟DPI,您可以通过以”像素“获取屏幕宽度和高度来计算尺寸。我没有我自己也试过了。