使用方法
- 如果你的网站修改了根字号,请在此设置(例如,html { font-size: 62.5% } 会将根字号设为 10px)。
- 在任一输入框中输入数值,即可在 px 和 rem 之间转换。若要相对于父元素设置尺寸,请切换为 em。
- 使用对照表快速查询常用尺寸,或粘贴 CSS 代码片段,一次性转换所有 px 长度并复制结果。
工作原理
rem = px ÷ 根字号。根字号默认是 16px 时,24px = 1.5rem,14px = 0.875rem。em 使用相同的计算公式,但基准是父元素的字号,因此嵌套的 em 值会逐层相乘;rem 则始终参照根元素,不会出现这种情况。
使用 rem 设置字号和间距后,当用户在浏览器设置中调大默认字号时,文本也会随之缩放,这有助于低视力用户。数值会四舍五入到小数点后四位。
代码片段转换器会转换 px 后面的数字,不会改动注释、url(…) 和带引号的字符串。启用相应选项后,可保留 1px(细边框通常应保持为 1px);0px 会转换为 0。默认情况下,@media 和 @container 条件中的值不会转换,因为在媒体查询中,rem 和 em 始终参照浏览器的初始字号,而不受你设置的根字号影响。转换器不会解析 calc() 的语义,只会替换其中的 px 数字;由于每个长度值都是单独转换的,因此结果仍然正确。
示例
默认根字号
根字号为 16px 时:12px = 0.75rem,20px = 1.25rem,32px = 2rem,0.5rem = 8px。
62.5% 技巧
如果你的 CSS 设置了 html { font-size: 62.5% },根字号就是 10px,因此 14px = 1.4rem,24px = 2.4rem。将根字号字段设为 10 即可匹配。
转换组件样式
启用“保留 1px 值”后,padding: 24px 16px; border: 1px solid #ddd; 会转换为 padding: 1.5rem 1rem; border: 1px solid #ddd;。
常见问题
应该使用 rem 还是 em?
大多数字号、间距和布局建议使用 rem,因为它在各种场景下都更可预测。如果希望某个元素随自身组件的字号缩放,例如按钮内边距,则使用 em。
为什么不把媒体查询转换为 rem?
可以,但在媒体查询中,1rem 始终等于浏览器的默认字号(通常为 16px),而不是 html 的字号。因此转换器默认会跳过媒体查询;如果你仍然按 16 来除,可以关闭此选项。
在无障碍方面,rem 比 px 更好吗?
对于字号来说,是的:rem 会遵循用户的默认字号设置,而 px 字号不会。浏览器缩放对这两种单位都有效。
隐私
转换和 CSS 代码片段均在浏览器中处理,不会发送到任何地方。