使用javascript查找以英寸为单位的屏幕尺寸而非像素

sta*_*low 15 javascript jquery screen

我正在阅读关于SO的许多问题,关于以像素检测屏幕尺寸的最佳方法,这最终取决于找到实际屏幕尺寸的分辨率.

我知道一些移动设备有小屏幕(比如4英寸)但分辨率很高.虽然有些设备有大屏幕(比如7英寸标签),但分辨率很低.

因此,当您想要向用户显示您的页面时,您确实需要以英寸或厘米为单位的屏幕尺寸,以提供舒适眼睛的最佳视图.

所以我问:有没有找到设备的屏幕尺寸,而不是像素?我知道它可以,只要我们知道决议!我们可以根据屏幕宽度和高度来计算尺寸

欣赏任何想法!

Pet*_*ete 21

一旦你获得了像素的屏幕分辨率,你可以用隐藏的div计算出dpi:

<div id="dpi" style="height: 1in; width: 1in; left: 100%; position: fixed; top: 100%;"></div>
Run Code Online (Sandbox Code Playgroud)

JS

var dpi_x = document.getElementById('dpi').offsetWidth;
var dpi_y = document.getElementById('dpi').offsetHeight;
Run Code Online (Sandbox Code Playgroud)

然后计算出以英寸为单位的分辨率:

var width = screen.width / dpi_x;
var height = screen.height / dpi_y;
Run Code Online (Sandbox Code Playgroud)

例

  • 仅打印机支持CSS绝对单位(英寸/厘米)的尺寸确定-规范还指出,它们应与“高分辨率显示器”上的实际尺寸相对应,但我们肯定会在2018年推出,而绝对不会。实际上并没有在实践中排队。 (3认同)
  • 抱歉,这看起来仍然不太好。我的 2019 年 MacBook Pro 配备 15 英寸屏幕,浏览器窗口的 x/y 为 17.5/10.9375 - 甚至还不够接近。 (2认同)