网络和物理单位

时间:2013-08-28 09:21:27

标签: javascript html css layout web

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

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

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

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

修改

换句话说,问题是使用CSS单位如pt,mm,cm,......不起作用,因为浏览器供应商决定将96 DPI硬编码到代理中,here。有没有什么可以做到在网上获得真实的,物理的,维度?

2 个答案:

答案 0 :(得分:2)

不是真的。

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

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

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

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

答案 1 :(得分:0)

cm和mm可用作CSS单位,有关详细信息,请查看 http://www.w3.org/TR/css3-values/#lengths

16px == 0.17in == 12pt == 1pc == 4.2mm == 0.42cm

我不确定它们在高密度屏幕设备中的效果如何......