如何访问屏幕显示’;通过javascript的DPI设置?
有没有办法在Javascript函数中访问屏幕显示的DPI设置如何访问屏幕显示’;通过javascript的DPI设置?,javascript,dpi,display-dpi,Javascript,Dpi,Display Dpi,有没有办法在Javascript函数中访问屏幕显示的DPI设置 我试图在页面上定位一个HTML面板,当用户的DPI设置为大(120)时,它会将该位置取消。我需要知道DPI是什么,这样我才能相应地调整位置。我不知道有什么方法,但是,它们可能是一种替代解决方案: 在“pt”和“em”中指定度量值,这是屏幕相对度量值 em: 1em等于当前字体大小2em表示当前字体大小的2倍。例如,如果一个元素的字体为12 pt,则'2em'为24 pt。'em'是CSS中非常有用的单元,因为它可以自动适应读者
我试图在页面上定位一个HTML面板,当用户的DPI设置为大(120)时,它会将该位置取消。我需要知道DPI是什么,这样我才能相应地调整位置。我不知道有什么方法,但是,它们可能是一种替代解决方案: 在“pt”和“em”中指定度量值,这是屏幕相对度量值
- em:
等于当前字体大小1em
表示当前字体大小的2倍。例如,如果一个元素的字体为2em
,则12 pt
为'2em'
。24 pt
是CSS中非常有用的单元,因为它可以自动适应读者使用的字体'em'
- pt:
点(
与1磅
相同)1/72英寸
- 个人电脑:
pica(
与1件
相同)12点
首先,为了帮助解决DPI(每英寸点数)这一术语可能存在的(也是非常常见的)混淆: DPI不完全是“显示设置”的一部分。它(mis)用于两种不同的上下文:
- 源图像的尺寸——这是存在的像素或数据量
- 源图像的DPI。此值确定打印图像时应如何解释尺寸
- 如果源图像没有嵌入DPI信息(JPEG可以有,GIF永远不会有),则正在使用的程序可能具有指定DPI的设置。这可能是图像查看器/编辑器,甚至是web浏览器
- 通常在打印对话框中指定的缩放因子
- 打印机的当前DPI设置
- 打印机的物理(最大)DPI
console.log(document.getElementById(“dpi”).offsetHeight)代码>
#dpi{
高度:1英寸;
左-100%;
位置:绝对位置;
前-100%;
宽度:1in;
}
您可以使用该属性获取屏幕/页面的缩放比例。这在当前桌面(Windows)上的IE、Edge、Chrome和Firefox中运行良好,但它似乎不是当前的标准。它返回1在我的台式电脑与传统的显示器和2在表面与200%的缩放。这些天的值应该在1.0到3.0之间。我可以用它来校正动态图像大小,以便在高分辨率屏幕上提供更清晰的图像
如果您需要一些逻辑dpi/ppi,请将该值乘以96。虽然它不是实际的物理ppi,只是操作系统对待它的样子。虽然您不能更改物理DPI,但您可以更改将测量值映射到像素的软件,该软件由软件控制,该软件具有任意值,通常通过EDID从监视器探测,但可以覆盖。这就是我认为OP的目的。不,在很多情况下,从软件中了解物理属性,如DPI和屏幕尺寸——包括从Javascript这样的高层次了解——是很有用的。API设计人员如果不公开如此明显的东西,因为他们想不出需要它的情况,那么他们肯定既缺乏远见,又有无所不知的错觉。@Glenn Maynard:是的,事实上,Android在其图形API中支持DIP(独立于设备的像素)。较低级别的光栅化库根据屏幕的已知DPI将倾角转换为实际像素。@早在2009年我写这个答案时,我就不知道有matchMedia
函数。答案可能有点过时,因此在今天变得不准确。我将更新它以提及函数。谢谢你提出这个,Upda