Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否有可能在不使用物理对象或对角线测量的情况下获得用户的物理屏幕尺寸?_Javascript_Html_Css - Fatal编程技术网

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

Javascript 是否有可能在不使用物理对象或对角线测量的情况下获得用户的物理屏幕尺寸?,javascript,html,css,Javascript,Html,Css,问题真的说明了一切。我希望能够以实际大小显示某个对象,例如,如果某个对象在浏览器中显示为20cm,我希望能够测量它,并将其实际显示为20cm 到目前为止,我已经找到了一些解决方案,它们考虑了屏幕的对角线分辨率(比如21.5英寸)和屏幕分辨率来计算像素的大小 另一种方法是要求用户将标准尺寸的卡(如银行卡)放到屏幕上,测量边缘以计算尺寸 有没有一种方法可以在屏幕上没有物理对象或用户不需要知道其对角线屏幕大小的情况下实现这一点 如果您知道除我提到的解决方案以外的其他解决方案,也请告诉我 你不能绝对肯定

问题真的说明了一切。我希望能够以实际大小显示某个对象,例如,如果某个对象在浏览器中显示为20cm,我希望能够测量它,并将其实际显示为20cm

到目前为止,我已经找到了一些解决方案,它们考虑了屏幕的对角线分辨率(比如21.5英寸)和屏幕分辨率来计算像素的大小

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

有没有一种方法可以在屏幕上没有物理对象或用户不需要知道其对角线屏幕大小的情况下实现这一点


如果您知道除我提到的解决方案以外的其他解决方案,也请告诉我

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


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

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


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

在其他地方有人建议,制作一个隐藏的1英寸div,然后查询像素宽度将得到一个虚拟DPI,你可以用它通过获得屏幕宽度和高度(以像素为单位)来计算尺寸“。我自己还没试过呢。

有意思的问题+1也不要忘记设备像素!=像素(在这种情况下,它可能对您有用,因为有关iOS中像素物理大小的谎言统一了视网膜和非视网膜显示)顺便说一句,物理大小也取决于缩放级别:-)