CSS 尺寸单位换算
转换所有处理都在浏览器本地完成,数据不上传服务器
输入
把文件拖到这里可直接载入
输出
输入一个值,一次看到它在所有单位下是多少。`rem` 按多算、`em` 按多算、`vw` 按哪个视口算,都是可调参数 —— 因为这几个单位本来就是相对的,相对的是运行环境而不是常量:`rem` 相对根元素字号(用户能在浏览器设置里改,默认 16px),`em` 相对当前元素的字号,`vw` / `vh` 相对视口。所以每个数字都带一行旁注写清它基于什么假设,而不是丢给你一个看起来同样确定的数。输入里带了单位(`24px`)就直接用那个,没带就用下拉框选的那个。绝对单位也一并给出:`1in = 96px` 是 CSS 规范定的,与屏幕实际像素密度无关。
功能
- 一次给出 11 种单位:px、rem、em、vw、vh、vmin、vmax、pt、in、cm、mm
- 相对单位的参照物可调:根字号、当前字号、视口宽高
- 每个相对单位的行内旁注写明「按什么算的」,避免把假设当成事实
- 输入可带单位(24px、1.5rem)也可不带,不带时按下拉框选的那个单位理解
- 全角数字、全角符号、粘贴带引号都能认(输入法带来的,不是你的输入错误)
- 结果分两组(相对单位 / 绝对单位),每行可单独复制
- 实时计算,不需要点运行;输入框空着时按 24px 给一份样例,页面不会空着
使用方法
- 在输入框里填一个值,例如 24px
- 如果只填了数字,用下拉框选它的单位
- 按需要调整根字号、当前字号与视口尺寸
- 读结果,点某一行的「复制」单独取走
常见问题
- 为什么没有百分比(%)这一行?
- 因为百分比在 CSS 里没有单一的含义:字号里的 `100%` 等于继承来的字号,而宽度、高度、`padding`、`translate` 里的百分比各有各的参照物(包含块、元素自身尺寸、视口……)。工具不知道这个值将来写在哪个属性上,给一个数字就是编的。字号场景有 `em` 行完全等价(`1em === 100%`),所以这个缺口不影响日常换算。
- 为什么没有 ch、ex、lh、cqw?
- 因为它们的换算取决于这个工具拿不到的东西。`ch` 是「0 字形的宽度」、`ex` 是「小写 x 的高度」,两者都取决于具体字体的度量;`lh` 是当前行高;`cqw` 相对的是最近的容器查询容器。这些值只有元素真正渲染出来才知道,任何离线换算都会给出一个看着合理的错误答案。输入这些单位时工具会明确说明原因,而不是悄悄按 px 处理。
- 1in 到底是多少像素?
- 96px,这是 CSS 规范写死的,与屏幕的实际像素密度无关 —— 所以这里不需要你填「屏幕分辨率」之类的参数。只有在做印刷品(要真实物理尺寸)时才需要另一套换算,那是 PPI 计算器的事。`pt` 由此推出:1 英寸 = 72 磅,所以 `1pt = 96 ÷ 72 ≈ 1.333px`,`12pt` 正好是 `16px`。
- rem 和 em 到底差在哪?
- `rem` 的参照物永远是根元素(`<html>`)的字号,一处改全局变;`em` 的参照物是当前元素的字号,而那个字号通常是从父级继承下来的,所以同一份 CSS 嵌在深一层里就会得到不同的结果 —— 这既是它的用途(随上下文缩放),也是它最容易出意外的地方。这个工具把两者分开成两个可调参数,就是为了让这个差别看得见。
相关工具
单位换算
转换在长度、重量、温度、能量、压力、流量、力、密度等 26 类单位之间换算,输入一个值就能看到同类全部单位下的结果,全部在浏览器本地完成。
PPI 计算
转换输入分辨率与屏幕尺寸,算出像素密度 PPI、点距毫米数与宽高比,并给出一句密度评价。
CSS 格式化
格式化在线 CSS 格式化与压缩:规则块展开、声明逐行、选择器列表一项一行,压缩只删结构位置的空白,保留 margin: 0 auto 这类有语义的空格。
时间戳转换
转换把 Unix 时间戳还原成日期时间,或反过来。秒 / 毫秒 / 微秒 / 纳秒自动识别,支持小数、负数与 Windows FILETIME。全部在浏览器本地完成。
日期计算
转换算两个日期之间相差多少天,或给一个日期加减若干天、周、月。日期用日历挑或直接粘贴,结束日期留空就与今天比较。全部在浏览器本地完成。
进制转换
转换在二、八、十、十六、36、64 进制之间互转,六种结果一次全部给出,19 位的雪花 ID 也能一位不差。全部在浏览器本地完成。