工具用的顺手吗?
你的反馈能帮助我们做得更好
为前端开发者设计的像素与EM单位互转工具,自定义基准字体,实时双向换算。
概览
了解工具能解决的问题、计算或处理逻辑,以及数据边界。
这个换算器处理 CSS 中的 px 与 em,支持从任意一侧输入并同步得到另一侧结果。px 是 CSS 的绝对长度单位;em 是字体相对长度,必须结合一个以像素表示的字体大小才能得到确定的数值。因此,“1em 等于多少 px”没有脱离上下文的唯一答案。页面预设的基准像素是 16px,这只是工具的初始计算值,不代表所有元素都固定采用 16px。
设目标像素值为 P,当前 CSS 上下文中 1em 对应的字体大小为 B(单位 px),换算结果为 E(单位 em):
E = P ÷ B
P = E × B
例如基准为 16px 时,24px ÷ 16px = 1.5em;反向计算时,1.5em × 16px = 24px。基准改为 20px 后,同一个 24px 则是 1.2em。可见公式本身很简单,真正影响结果的是有没有选对 B。
按照 CSS 规范,em 通常等于使用它的元素的计算字体大小;但当 em 用在 font-size 等字体属性上时,它按父元素的计算字体度量解析。于是,给子元素写 font-size: 1.25em 时,应把父元素的计算字号填入“基准像素”;给同一元素写 padding: 1em 或 margin: 1em 时,应以该元素自身的计算字号为基准。rem 则始终以根元素为参照,不能把两者在所有场景中当成同一种换算。
指南
按步骤完成操作,并通过示例核对输入与结果。
先判断数值将用于 font-size,还是用于 padding、margin、宽高等其他属性。这个选择决定应查看父元素还是当前元素的计算字号。
在浏览器开发者工具的“计算样式”中查看对应元素的最终 font-size,不要只看某一条声明。继承、层叠和上级字号都可能改变最终基准。
把计算字号填入“基准像素”。从设计稿转换时在 PX 一侧输入;阅读已有样式或反查像素值时在 EM 一侧输入。另一侧会立即更新。
复制所需数值应用到样式后,再查看计算样式是否得到预期像素值。重置会恢复 16px 基准、16px 输入和 1em 结果。
| 任务 | 输入 | 基准 | 结果 |
|---|---|---|---|
| 设计稿字号转 EM | 14px | 16px | 0.875em |
| 组件间距转 EM | 24px | 20px | 1.2em |
| 已有 EM 反查 PX | 1.25em | 18px | 22.5px |
修改基准像素时,工具会保留当前 PX 数值并重新计算 EM。页面还提供 8、12、14、16、18、20、24、32、48、64px 的快捷对照项;它们会随当前基准变化,点击任一项即可把该 PX 值带入主换算区。
场景
查看这项工具在不同工作与生活流程中的用法。
设计师给出 14px、18px、24px 等标注,而组件规范要求使用 em。开发者按目标元素的真实字号上下文设置基准,批次逐项换算,并在页面中核对计算值。
按钮或标签的内边距需要跟随组件字号一起放大或缩小时,可把设计稿中的像素间距换成相对于组件计算字号的 em,使内部比例保持一致。
接手包含多层 em 字号的页面时,可从最外层的计算字号开始逐层反查像素结果,定位是哪一层基准改变造成标题、正文或间距偏离预期。
问答
集中解答高频疑问与容易混淆的问题。
不一定。16px 是本工具的预设基准;实际的 1em 取决于该单位所在 CSS 属性对应的计算字体大小。基准为 18px 时,1em 就按 18px 换算。
通常是基准没有使用最终计算字号。检查目标属性、父子关系、继承与层叠后的 font-size,再把正确的像素值设为基准;还要留意工具显示舍入与浏览器内部精度的差别。
因为子元素继承的是父元素已经计算后的字号。若起点为 16px,父元素和子元素都写 font-size: 1.25em,两层计算依次为 20px 和 25px,而不是都等于 20px。
需要所有层级统一参照根元素时,rem 更直接;需要一个组件的字号、间距和尺寸随组件自身比例缩放时,em 更合适。选择取决于希望尺寸跟随局部上下文还是全局根字号。
须知
使用前了解适用范围、结果限制与必要提醒。
px 是参考像素体系中的单位,不应直接理解为屏幕上的单个硬件像素;设备像素密度不会改变这里使用的 PX/EM 比例公式。推荐
查找相关工具、专题与可用的 API 能力。