如何获取屏幕的物理尺寸(即以英寸为单位)
How to get screen's physical size (i.e. in inches)?
我正在尝试弄清楚如何通过Javascript获取设备屏幕的物理尺寸。到目前为止,我的结论是目前这是不可能的,但我希望有人能证明我错了:)。
到目前为止,我试图通过查找设备的DPI来获取此信息,但似乎没有办法在这里获得正确的值,因为我测试过的所有设备(一些HDPI和XHDPI Android设备,iPhone4S,iPad 2和iPad 3)报告96DPI。
我尝试过的第一种方法是您可以在互联网上随处找到的方法:创建一个 CSS 宽度为 1in
的div
,获取其clientWidth
或offsetWidth
,然后就有您的 DPI。不起作用,所有设备都报告 96。
第二种方法是使用分辨率媒体查询,大致如下:
for (var i=90; i < 400; i++) {
if (matchMedia('(resolution: ' + i + 'dpi)').matches) {
return i;
}
}
我认为这是一个明智的解决方案,但不幸的是,这也返回了 96。
还有什么可以尝试的吗?
96 "DPI"是一个与现实关系不大的Web标准。它测量的英寸最好被视为"逻辑"英寸,对应于字体指标和 CSS 测量值(可以包括磅和英寸)。排版中的"点"被定义为 1/72 英寸,但屏幕在很久以前就不再是 72 DPI。因此,CSS点现在的真正含义是96磅字体高72像素。(这是合乎逻辑的像素,因为这个问题现在被高DPI屏幕进一步混为一谈。
无论如何,大多数本机操作系统都不知道它们的真实物理屏幕尺寸,因此它们甚至没有关于它们可以通过浏览器向 Web 应用程序公开的信息。你问的是不可能的。
看看这篇文章。它完成的:
<meta name="viewport" content="width=device-width, target-densitydpi=device-dpi">
相关文章:
- 是否可以使用javascript获取以em为单位的窗口宽度
- 获取以屏幕像素为单位的旋转SVG元素的边界
- 从Javascript到C#获取正确的日期(以毫秒为单位)
- 以非像素为单位获取HTML DOM元素的CSS高度,在我的例子中是英寸
- JavaScript-从HTML img src中获取以字节为单位的大小
- .height() 以百分比返回高度,如何以像素为单位获取它
- 如何从顶部获取窗口位置(以像素为单位)
- 以像素为单位获取整个页面的高度
- 如何获取屏幕的物理尺寸(即以英寸为单位)
- 如何在 javascript 中获取指定时区的一天的开始时间和结束时间(以 UTC 为单位)
- 获取返回的数据表的大小(以像素为单位)
- 如何从 2 个不同的字符串中获取以毫秒为单位的时间
- 如何使用 JavaScript 获取以度为单位的 CSS 转换旋转值
- 获取相机的当前旋转(以度为单位)
- 以毫秒 (UTC) 为单位获取当前日期(不使用字符串)
- 获取用户视口大小(以 ems 为单位)
- 获取宽度(以公里为单位)的谷歌地图 API 地图
- NodeJs 获取变量的大小(以字节为单位)
- 可以't以angularJs为单位获取数据
- jQuery获取以像素为单位的高度