使用方法
- 「数值」默认 1,单位跟着「方向」走:正向是厘米,反向是像素。改动任意一项,或光标停在数值框里按回车,都会立刻重算。
- 「方向」只有两项:cm2px 是厘米到像素,即乘 37.79527559055118;px2cm 是像素到厘米,即乘 0.0264583333333333。点「交换方向」把两头对调,用来反着核一遍。
- 「小数位」默认 6,范围 0 到 12。写样式表通常留两三位就够;要把像素等分回毫米口径、或核对 4800/127 这个无限小数时再调高。
- 「批量换算」默认写好五行,每行一条「数值 空格 方向键」。改完后按 Ctrl+Enter(Mac 上是 Cmd+Enter)一次算完;框被清空时点「换算」会自动补回示例。
- 结果区第一行是主结果,往下四行是固定口径:英寸与像素的锚定、厘米与像素的双向系数、A4 的像素尺寸、磅与派卡。这四行不受小数位影响,专门用来核对换算口径。
- 清单下方是十二行档位表,按当前方向从小到大排列,默认露出 6 行,点「加载更多」展开全部,点「导出 CSV」存成带字节序标记的文件。
- 「复制结果」复制整段清单;「复制对照表」复制正文那张尺寸对照表,字段之间是制表符,可以直接粘进表格软件。
- 数值为空、写成负数、超出所在方向的上限,小数位留空或不是 0 到 12 的整数,批量行缺空格、数值不是数字、方向键不在两个之内,都会点明行号并说明原因。
厘米转像素能解决什么
厘米是物理长度,像素是 CSS 的长度单位,两者之间隔着一个写在规范里的固定比值,而不是屏幕的真实点密度。CSS 把 1 英寸定义为恰好 96 像素,英寸又等于 2.54 厘米,两项相除就得到 1 厘米 = 37.79527559055118 像素。本页默认做厘米到像素,选 px2cm 可以反算。
第一类是把设计稿上的毫米数写成样式表里的 px。要求某条分隔线在页面上占 3 毫米,反算是 0.3 × 37.79527559055118 = 11.34 像素;反过来样式表里已有的 300 像素栅格,用 px2cm 折回去正好是 7.9375 厘米。这类数值不会因为换了一台高密度显示器而改变。
第二类是生成 PDF 与打印样式时定画布尺寸。多数 HTML 转 PDF 的引擎按 96dpi 排版,于是 A4 的 21 × 29.7 厘米对应 793.700787 × 1122.519685 像素。若最终要出 300dpi 的位图,还要在这个基础上再乘 300 ÷ 96 = 3.125,得到约 2480 × 3508 像素 —— 两步不能并成一步。
第三类是核对排版单位的进位。CSS 保留了 1 英寸 = 72 磅的印刷传统,同时又锚定 1 英寸 = 96 像素,于是 1 磅 = 4/3 像素、1 派卡 = 12 磅 = 16 像素,全是精确值。看到 12pt 的字号就知道它在参考像素下是 16 像素,不必再去查表。
还有一类边界要说清:本页换算的是 CSS 定义的单位,不是屏幕上真实的物理点密度。同一段 96 像素长的线条,在 devicePixelRatio 为 2 的手机上会由 192 个物理子像素呈现,但它在 CSS 里仍然是 96 像素、仍然是 2.54 厘米。要谈设备密度请另找物理参数,不要改动本页的 96。
换算原理与变量说明
整页只锚定一条:CSS 规定 1 英寸 = 96 像素,而英寸定义为 2.54 厘米。于是 1 厘米 = 96 ÷ 2.54 = 4800/127 像素,写成小数是 37.79527559055118;反过来 1 像素 = 127/4800 厘米 = 0.0264583333333333。两个系数互为倒数,一次乘法即可。
96 是规范写死的参考值,不是你的显示器 dpi。早期 Windows 把逻辑英寸定成 96 像素,CSS 沿用了这个惯例,并把它定义成「参考像素」:约等于一臂距离(约 28 英寸)下一台 96dpi 设备上一个像素的视角张角,折算下来约 0.26 毫米。无论面对 Retina 屏还是普通屏,浏览器都用同一把尺子解析 cm、mm、in 这些绝对长度。
pt 与 pc 属于另一套印刷进位,但也被锚在 96 上。1 英寸 = 72 磅,1 派卡 = 12 磅,由 1 英寸 = 96 像素推出 1 磅 = 96 ÷ 72 = 4/3 像素、1 派卡 = 16 像素。这两个比值精确,所以在 CSS 里写 12pt 与写 16px 完全等价。
| 单位 | 定义 | 折 CSS 像素 |
|---|---|---|
| 1 英寸(in) | 2.54 厘米 | 96 |
| 1 厘米(cm) | 1/2.54 英寸 | 37.79527559055118 |
| 1 毫米(mm) | 1/25.4 英寸 | 3.779528 |
| 1 磅(pt) | 1/72 英寸 | 1.333333 |
| 1 派卡(pc) | 12 磅 | 16 |
| 1 像素(px) | 参考像素 | 1 |
打印时要分清两种 dpi。CSS 的绝对长度在屏幕与纸上都用同一套 96dpi 口径:一份 A4 永远是 793.700787 × 1122.519685 像素。打印机输出时按自己的物理分辨率栅格化,300dpi 就是再乘 3.125。把两件事合成一步,就会得出「改了 dpi 之后 CSS 里的 px 也跟着变」的错误结论。
舍入只发生在显示层。4800/127 的分母含质因子 127,十进制展开是无限小数(1 毫米的 480/127 同理),双精度浮点只能保留约 16 位有效数字。页面固定口径行给出 37.79527559055118,再往后属于二进制浮点的残留;批量换算用的是同一个系数,不存在两套口径打架。
完整示例(数值仅作演示)
默认值是数值 1、方向厘米到像素、小数位 6。手算复算:1 × 96 ÷ 2.54 = 37.79527559055118,保留 6 位小数得 37.795276,页面主结果就是这一行。
1 英寸 = 96 像素,1 英寸 = 2.54 厘米 1 厘米 = 96 ÷ 2.54 = 37.79527559055118 像素 反向:1 像素 = 2.54 ÷ 96 = 0.0264583333333333 厘米 A4:21 厘米 → 793.700787 像素,29.7 厘米 → 1122.519685 像素
批量框五行:2.54 cm2px 得 96 像素,正是定义的那一级;21 cm2px 得 793.700787 像素,就是 A4 宽度;96 px2cm 走反方向得 2.54 厘米;793.700787 px2cm 回到 21 厘米,说明正反两步互为逆运算。每一行都按自己行首的方向键独立计算,与顶部下拉无关。
反向核对:点「交换方向」后数值仍是 1,方向变成像素到厘米,结果只有 0.026458 厘米。边界值有两个:0 厘米 = 0 像素;厘米方向上限 10000 厘米折 377952.755906 像素,像素方向上限 1000000 像素折 26458.333333 厘米,再大就要拆开分次换算。
厘米转像素对照表
下表按像素从小到大排列,第三列是同一份长度按 127/4800 折出的厘米数。像素一列是锚点,厘米一列全部由它乘同一个系数得来,所以任意两行的厘米数之比一定等于它们的像素数之比。
| 单位 | 像素(px) | 厘米(cm) |
|---|---|---|
| 1 像素 | 1 | 0.026458 |
| 1 磅 | 1.333333 | 0.035278 |
| 1 派卡 | 16 | 0.423333 |
| 1 厘米 | 37.795276 | 1 |
| 1 英寸 | 96 | 2.54 |
| 100 像素 | 100 | 2.645833 |
| 150 像素 | 150 | 3.96875 |
| 300 像素 | 300 | 7.9375 |
| 600 像素 | 600 | 15.875 |
| A4 竖版宽 | 793.700787 | 21 |
| A4 竖版高 | 1122.519685 | 29.7 |
| 全高清宽度 | 1920 | 50.8 |
读这张表抓两个整数:96 像素是 1 英寸也就是 2.54 厘米,1920 像素是 20 英寸也就是 50.8 厘米,两者的厘米数都是有限小数;而 1 厘米落在 37.795276 像素上,本身是无限小数,落进样式表时通常取整到 37.8 或保留两位。
结果边界、舍入与适用说明
- 数值为空时提示「数值不能为空,请填 0 到 10000 之间的厘米数,例如 1」,不会沿用上一次的结果。
- 数值写成负数时提示厘米与像素都是长度单位、请填 0 或正数;批量行里的负号同样会被拦下并指出行号。
- 厘米方向上限是 10000 厘米,像素方向上限是 1000000 像素,超出都提示拆成更小的分量分别换算,不自动截断到边界值。
- 小数位留空、写成 2.5 这样的小数、或超出 0 到 12,分别给出三条不同提示,既不自动取整也不回退默认值。
- 结果小于 0.0001 时页面按有效数字显示,避免科学计数法吃掉位数;绝对值大于等于 1e15 时改用科学计数法显示 6 位小数。
- 固定口径行不受小数位影响:96 像素每英寸与 37.79527559055118 像素每厘米这两项始终按满精度输出。
- 本页按 CSS 参考像素口径换算,与设备的物理点密度无关;devicePixelRatio、屏幕实际 dpi 与打印机的栅格分辨率都不进入计算。
- 页面不联网、不写本地存储,数值与批量内容只在本页做乘除。
常见问题
为什么偏偏是 96 像素等于 1 英寸?
因为它源自早期 Windows 把逻辑英寸定为 96 像素的惯例,CSS 沿用后写进了规范:当锚单位是 px 时,物理单位按 1 英寸 = 96 像素解析。这不是测出来的物理量,而是一个为了让所有设备共用一把尺子而钉死的常数。
96dpi 是屏幕的真实点密度吗?
不是。绝大多数手机的真实密度在 300 到 500 ppi 之间,桌面显示器常见 96 到 220 ppi。浏览器会把 devicePixelRatio 折算掉,1 厘米在 CSS 里永远等于 37.795276 像素,与它最终由多少物理子像素呈现无关。
1 厘米等于多少像素,反过来呢?
1 厘米 = 96 ÷ 2.54 = 37.79527559055118 像素,既约分数是 4800/127;反向 1 像素 = 2.54 ÷ 96 = 127/4800 厘米 = 0.0264583333333333 厘米。二者互为倒数,相乘正好等于 1。
生成 PDF 时要不要按 300dpi 重算?
要,但那是第二步。CSS 画布先按 96dpi 排:A4 是 793.700787 × 1122.519685 像素;出图时再按目标分辨率放大,300dpi 乘 3.125 得约 2480 × 3508 像素。不要把 300 直接替掉 96 去算 CSS 里的 px。
A4 纸在 96dpi 下是多少像素?
竖版 A4 是 21 × 29.7 厘米,对应 793.700787 × 1122.519685 像素。这两个数字来自 21 × 96 ÷ 2.54 与 29.7 × 96 ÷ 2.54,也是多数 HTML 转 PDF 引擎的默认页面尺寸。
1 磅(pt)等于多少像素?
等于 4/3 像素。因为 CSS 同时规定了 1 英寸 = 72 磅与 1 英寸 = 96 像素,相除得 96 ÷ 72 = 4/3。由此 1 派卡(12 磅)= 16 像素,常见的 12pt 字号就等于 16px。
批量里的 cm2px 和 px2cm 是什么意思?
cm2px 表示这一行按厘米到像素算,即乘 37.79527559055118;px2cm 表示像素到厘米,即乘 0.0264583333333333。每行可以写不同的方向键,与顶部下拉互不影响。
输入的数据会上传到服务器吗?
不会。数值、方向与批量内容只在本页的 JavaScript 里做乘除,没有发起任何网络请求,刷新页面后输入即恢复默认值。