在线屏幕标尺

先用一张标准银行卡校准出「每毫米占多少像素」,再把屏幕像素折成毫米、厘米或英寸刻度。浏览器只按 CSS 规范认定 1 英寸等于 96 像素,真实屏幕上差多少,靠这一步校准补回来。

ISO/IEC 7810 ID-1 卡的长边就是 85.60
拿实物贴着屏幕比,改这个数直到一样宽
快速取参照物:

校准参照条:把下面这条与你手上的实物比一比,宽度不一致就改上面的「占多少 CSS 像素」。

85.60 mm
0102030405060708090100110120130140150160170
校准比例:324 px ÷ 85.60 mm = 3.78505 px/mm
CSS 基准:96 ÷ 25.4 = 3.77953 px/mm,当前与之相差 0.146%
1 个 CSS 像素 = 0.26420 mm = 264.2 µm
当前单位:毫米,刻度间距 3.78505 px,容器可显示约 185.0 mm

(数值仅作演示;校准结果只对当前这台设备、当前缩放比例有效)

提示:三个输入框里裸按 Enter 立即重绘;切换单位或改参照物都会实时刷新。示例已服务端直出,脚本没跑也有刻度。

使用方法

  1. 找一张标准银行卡或身份证(ISO/IEC 7810 ID-1,长边正好 85.60 毫米),把它平贴在屏幕上,紧贴着上面的「校准参照条」。
  2. 改第二个输入框「它在屏幕上占多少 CSS 像素」,默认 324。反复加减这个数,直到参照条宽度和卡片严丝合缝。刻度、统计和下面的像素换算表会同步变化。
  3. 第一个输入框确认参照物长度是 85.60 毫米(10~600 之间都可以)。换成 A4 短边 210 毫米之类也可以,右侧四个单选按钮是常用实物的快捷值。
  4. 选刻度单位:毫米适合量小零件,厘米适合量版面,英寸适合对照进口显示器参数。默认毫米,刻度间距 3.78505 px。
  5. 读结果:这个在线屏幕标尺给出五张卡——校准比例、与 CSS 基准的偏差、1 像素合多少毫米、一屏可见范围与刻度总数;点「复制读数」带走这段文字。

这个在线屏幕标尺能解决什么问题

一是手边没有尺子又要知道大概尺寸。快递来的小零件、要配的螺丝孔距、临时想知道某张照片大致几厘米——校准一次之后,把东西贴到屏幕上对着刻度读数即可,精度取决于你校准得有多认真。

二是给设计稿和网页做「肉眼校验」。设计稿写 16 毫米的边距,屏幕上到底多长?在校准过的屏幕上直接量,比在脑子里换算像素密度可靠得多。对照表里那些常见实物尺寸,也方便你判断某个尺寸「大概像一枚一元硬币」还是「差不多一张名片」。

三是解释「为什么同样 100 px 在我的屏幕上比别人的窄」。CSS 只规定 1 英寸等于 96 像素,但屏幕的物理密度、系统缩放、浏览器缩放三者都会改变一个 CSS 像素实际有多长。本工具把这个差异量化成一个百分比,让你看见究竟差了多少。

本页不做:不检测屏幕分辨率或面板参数(那是「屏幕分辨率测试」做的事);不按显示器尺寸反推像素密度与最佳观看距离(看「屏幕尺寸计算器」与「PPI计算器」);也不读取显示器 EDID 或调用摄像头,浏览器没有给出这类接口。

校准原理:96 px/英寸这条基准线,以及它为什么不够用

基准来自 CSS 规范。W3C《CSS Values and Units Module Level 4》第 5.2 节规定了一组绝对长度:1 英寸固定等于 96 个 CSS 像素,于是 1 毫米 = 96 ÷ 25.4 = 3.77953 px,1 厘米 = 96 ÷ 2.54 = 37.79528 px。注意这是规定值而非实测值:浏览器写 width:100mm 时画出的就是 377.95 个 CSS 像素,与实际一百毫米的物理长度无关。

为什么一定要校准。「CSS 像素」和「物理毫米」之间隔着三层:面板的物理像素密度、操作系统的缩放比例、浏览器的页面缩放。同一张 85.60 毫米的卡,在普通笔记本上占 323 CSS 像素(比例 3.77336 px/mm),在高分屏配 125% 系统缩放时只占 268(比例 3.13084,比基准低 17.16%),在外接 2K 显示器上占 402(比例 4.69626,比基准高 24.26%)。差别之大,不校准根本不能用。

不校准会错多少。用上面那台 125% 缩放的机器举例:页面按基准画 100 毫米是 377.95 个 CSS 像素,而在这台机器上这段像素实际代表 120.72 毫米,等于多算了 20.72 毫米,误差超过 20%。换成正确的比例 3.13084 之后,同一 100 毫米对应 313.08 像素,读数才回到 100.00 毫米。

为什么不用 devicePixelRatio。它只回答「1 个 CSS 像素由几个物理像素渲染」,不回答「这些物理像素有多长」。更麻烦的是,它会被系统缩放改变,而且浏览器通常只给出 1、1.25、1.5、2、3 这类离散值。把它当成 96 倍的估算密度(96 → 120 → 144 → 192 PPI)只是粗算,替代不了一次真实比对。

参照物为什么选卡片。ISO/IEC 7810 的 ID-1 尺寸(85.60 × 53.98 毫米)是明文写进国际标准的一片塑料,人人兜里都有、几乎无制造公差、且尺寸不随使用磨损。A4 纸的 297 × 210 毫米来自 ISO 216(面积 1/16 平方米、长宽比 √2),同样可靠,适合校准更大的范围。

输入怎么变成刻度。两个原始值相除得到比例 k = 像素数 ÷ 参照物毫米数(默认 324 ÷ 85.60 = 3.78505 px/mm);再倒数得到「一个 CSS 像素合多少毫米」(默认 0.26420 毫米,即 264.2 微米)。刻度线由 CSS 的 repeating-linear-gradient 绘制,background-size 直接设成 k 个像素,于是每一条细线的间距就是 1 毫米;数字标签按 10 毫米一个绝对定位摆放。整套流程没有用到 Canvas,也没有任何第三方库。

完整示例(数值仅作演示)

示例条件与页面默认态一致:参照物 85.60 毫米、占 324 个 CSS 像素、单位毫米。逐项核对:

常见参照物尺寸与像素换算对照表

「折合 CSS 像素」一列按默认比例 3.78505 px/mm 算。这张表有两个用途:给校准提供已知长度的实物,以及在校准完成后反过来核对读数。

参照物真实尺寸折合 CSS 像素依据
银行卡 / 身份证长边85.60 mm324.00 pxISO/IEC 7810 ID-1 明文规定
银行卡 / 身份证短边53.98 mm204.32 px同上,圆角不改变总长宽
A4 纸长边297.00 mm1124.16 pxISO 216,面积 1/16 m²、长宽比 √2
A4 纸短边210.00 mm794.86 px297 ÷ √2 = 210.011,标准取整 210
A5 纸长边210.00 mm794.86 pxA5 是 A4 对折
A5 纸短边148.00 mm560.19 px210 ÷ √2 = 148.49,标准取整 148
名片长边90.00 mm340.65 px国内主流成品尺寸 90 × 54
名片短边54.00 mm204.39 px同上
键盘相邻字母键中心距19.05 mm72.11 px3/4 英寸 × 25.4 = 19.05
一元硬币直径25.00 mm94.63 px第五套人民币 1 元币标准直径
五角硬币直径20.50 mm77.59 px第五套人民币 5 角币标准直径
一角硬币直径19.00 mm71.92 px第五套人民币 1 角币标准直径
3.5 mm 耳机插孔外径3.50 mm13.25 px插孔名义直径
乐高 2×4 砖长边31.80 mm120.36 px单元数 × 8.0 − 0.2
乐高 2×4 砖短边15.80 mm59.80 px同上
乐高相邻凸起间距8.00 mm30.28 px基本模数 8.0 mm
SD 卡长边32.00 mm121.12 pxSD 物理规格 32.0 × 24.0 × 2.1
SD 卡短边24.00 mm90.84 px同上
CD 光盘外径120.00 mm454.21 pxIEC 60908 规定 120 mm
CD 中心孔直径15.00 mm56.78 pxIEC 60908 规定 15 mm
5 号电池直径14.50 mm54.88 pxIEC 60086 AA 型最大直径
5 号电池长度50.50 mm191.14 pxIEC 60086 AA 型最大长度
7 号电池直径10.50 mm39.74 pxIEC 60086 AAA 型最大直径
7 号电池长度44.50 mm168.43 pxIEC 60086 AAA 型最大长度

输入范围、边界与精度说明

常见问题

在线屏幕标尺为什么是 3.78505 而不是规范里的 3.77953?

3.77953 是纯粹的数学值(96 ÷ 25.4),而页面默认填的是 324 个整数像素除以 85.60 毫米,得到 3.78505。两者只差 0.146%,差的那点来自把 323.53 取整成 324。这正是本工具要求你自己比对的理由:真实值只能来自真实比对。

没有银行卡,用别的东西可以吗?

可以,任何尺寸已知且足够长的东西都行。更稳的做法是用更长的参照物:A4 纸的 297 毫米把比对误差摊薄到原来的三分之一左右。页面右侧四个单选按钮覆盖了 85.60、210、19.05、25 四个常用值。

调了浏览器缩放之后要重来吗?

要。浏览器缩放改变的是 CSS 像素与物理长度的对应关系,原来的比例立即失效。系统缩放比例变化、把窗口拖到另一台显示器上,同理都要重新比对一次。

手机上也能量吗?

能,但一屏可见长度受限。按默认比例,320 像素宽的屏幕只显示 84.5 毫米。量更长的时候横向拖动标尺即可;另外手机屏幕通常视角色彩偏移明显,建议正视而不是斜看。

devicePixelRatio 不能代替校准吗?

不能。它只说 1 个 CSS 像素由几个物理像素渲染,没有给出物理长度。它还会被系统缩放改写,并被浏览器规整成有限的离散值;用它乘 96 得到的 PPI 只是粗估。

量出来总觉得差一点点,是 bug 吗?

多半是比对误差或多个毫米刻度上的视差叠加。把 1 像素的量级记住:默认比例下 1 个 CSS 像素就是 0.26420 毫米,差两三个像素属于正常比对抖动。需要更准请换更长的参照物。

CSV 导出那一列为什么和我屏幕上的不一样?

「折合 CSS 像素」这一列是用页面默认比例 3.78505 算的固定值,方便对照。你在自己设备上校准出别的比例之后,实际像素数是「真实尺寸 × 你的 k」,两者不同是正常的。

输入的内容会被上传吗?

不会。比例、刻度、像素换算全部是当前页面上的算术,不读取 EDID、不调用摄像头、不发起任何网络请求,也不写本地存储。可以在开发者工具的 Network 面板里多点几次「重绘标尺」确认。

相关工具