【问题标题】:Web and physical units网络和物理单位
【发布时间】:2013-08-31 07:02:58
【问题描述】:

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

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

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

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

编辑

换句话说,根据here,问题在于使用 pt、mm、cm 等 CSS 单位不起作用,因为浏览器供应商决定将 96 DPI 硬编码到代理中。有什么办法可以在网络上获得真实的物理尺寸吗?

【问题讨论】:

  • 为什么要投反对票和接近投票?
  • 因为这是两秒钟的 Google 搜索:w3.org/Style/Examples/007/units.en.html
  • 是的,我知道,但根据robert.ocallahan.org/2010/08/css-units-changes-landed_20.html,这应该行不通。
  • @TiesonT。除了它不起作用。那么为什么要投反对票呢?
  • 如果有人不同意投反对票,我相信他们会投赞成票,但照原样,没有什么可以显示您阅读的内容以尝试自己回答这个问题,或者您的试过了,不行。如果您可以显示其中任何一个,我很乐意撤回我的反对票。

标签: javascript html css layout web


【解决方案1】:

不是真的。

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

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

在实践中,如果您需要准确的测量值,您几乎只能在屏幕上绘制一些东西并要求用户用尺子测量它以获得您的比率。

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

【讨论】:

  • 这几天似乎有some OS / Hardware combinations确实可以可靠地解释和渲染CSS中的物理尺寸(因为硬件可以将其尺寸报告给操作系统,而操作系统可以将它们报告给浏览器,我相信)。不过,这并不可靠。
【解决方案2】:

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

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

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

【讨论】:

  • 关于以及在低密度设备中 - 也就是说“根本没有”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多