如何在css/javascript中模拟真实大小的维度

如何在css/javascript中模拟真实大小的维度,javascript,html,css,webkit,Javascript,Html,Css,Webkit,我需要在web应用程序上显示具有真实大小的对象。如果一个物体的宽度为85毫米,那么它也应该显示在屏幕上(ipad 1、2、3和androids)。我试图在css中设置以毫米为单位的图像,但没有成功。有什么建议吗?关于MDN的这句话的意思是,它应该在高分辨率的设备上工作: 对于低dpi设备,单元px表示物理参考像素,其他像素是相对于它定义的。因此,1in被定义为96px,等于72pt。该定义的结果是,在此类设备上,以英寸(英寸)、厘米(厘米)、毫米(毫米)表示的长度不必与具有相同名称的物理单位的长

我需要在web应用程序上显示具有真实大小的对象。如果一个物体的宽度为85毫米,那么它也应该显示在屏幕上(ipad 1、2、3和androids)。我试图在css中设置以毫米为单位的图像,但没有成功。有什么建议吗?

关于MDN的这句话的意思是,它应该在高分辨率的设备上工作:

对于低dpi设备,单元px表示物理参考像素,其他像素是相对于它定义的。因此,1in被定义为96px,等于72pt。该定义的结果是,在此类设备上,以英寸(英寸)、厘米(厘米)、毫米(毫米)表示的长度不必与具有相同名称的物理单位的长度匹配

对于高dpi设备,英寸(英寸)、厘米(厘米)、毫米(毫米)被定义为其物理对应物。因此,px单元是相对于它们定义的(1英寸的1/96)

资料来源:


还有一种实验装置,它试图以精确一毫米的速度进行渲染,而不管显示器的大小或分辨率如何。«(见上面的链接)。

正如@feeela所提到的,厘米、英寸、毫米等单位与现实生活中的尺寸不符。也无法获取特定的设备DPI,最接近的是
window.devicePixelRatio
属性。解决此问题的一种方法是使用外部库,如确定用户所在的确切设备,然后将任何硬编码像素密度分配给该设备,如中所列。 一旦你以某种方式获得了密度,你就可以很容易地将任何尺寸转换成所需的尺寸。 例如,在Ipad3上:

var dpr     = window.devicePixelRatio;
var inch    = 25.4; //1inch = 25.4 mm
var ppi     = 264; //Ipad3 density

function mmToPx(mm){
    return ((mm/inch)*ppi)/dpr;
}

myElement.width = mmToPx(size_in_mm);

我希望它能帮助任何有同样问题的人…

只要使用
85mm
mm
是有效的单位。如果你尝试了
mm
单位,但它与现实生活中的刻度不匹配,那么你将不得不在计算机上调整DPI值。我刚刚意识到
1px
并不意味着在高DPI设备中
一个像素
:OSo这些单位根本不起作用。我不敢相信它不可能显示真实尺寸的东西…@Drala这是可以理解的,这取决于屏幕设备的性能,你可以想象,如果屏幕分辨率只有10x10,物理尺寸约为10cm x 10cm,这意味着屏幕上的一个像素等于1cm,那么你怎么能显示一厘米小的东西呢?使用高分辨率屏幕,您可以大致显示所有内容(由于人眼的能力有限)。@King King但至少我们应该能够恢复分辨率。如果我使用ipad3,我应该能够读取264像素/in@Derek朕會功夫 - 可能是因为如果有,许多网站将无法在高分辨率设备上使用。