javascript – Web和物理单位

有没有办法告诉/设置一个元素有多少毫米,哪个适用于各种设备?

例如,我想创建一个100 x 100毫米的白色窗口,中间有一个10 x 10毫米的黑色正方形,这些尺寸可以放在台式机,平板电脑,平板电脑……

我不介意使用最新的浏览器,但它必须使用HTML / JS / CSS.

PS:相关:有没有办法告诉屏幕有多少毫米?

编辑

换句话说,问题是使用CSS单位如pt,mm,cm,……不起作用,因为浏览器供应商决定将96 DPI硬编码到代理中,根据here.是否有任何可以做到的事情,网上的物理,尺寸?

最佳答案 并不是的.

从理论上讲,您可以使用mm单位设置长度,但这需要浏览器准确处理显示的DPI …并且浏览器倾向于采用固定值而不是获取真实值.

如果可行,则可以通过创建已知物理尺寸的离屏元素,使用JavaScript读取像素尺寸并使用该比率将任何其他元素的像素尺寸转换为mm来获得该单位的宽度.

在实践中,如果您需要精确的测量,您几乎只限于在屏幕上绘制某些内容并要求用户使用标尺来测量它以获得您的比率.

或者,如果您可以识别正在使用的特定设备(用户代理字符串可能会告诉您某些设备),并且您保留了这些设备的物理大小的数据库(因此这仅限于手机和平板电脑的子集并赢得了如果它们连接到外部显示器,它们可以工作)您可以使用它来确定尺寸.

点赞