绝大多数现代浏览器根元素默认 font-size 为 16px,rem 以此为基准,em 则相对父元素计算;各标签默认字号由用户代理样式表设定,如 h1 约 32px、small 约 13.28px。

浏览器默认的 font-size 是多少
绝大多数现代浏览器(Chrome、Firefox、Safari、Edge)对根元素 的默认 font-size 是 16px,因此页面中未显式设置字号的普通段落()、标题(–)等,其计算基准都基于这个值。注意:这不是 CSS 规范强制规定的,而是各浏览器厂商的实现共识。
rem 和 em 的基准差异
理解默认值的关键在于区分单位行为:
-
rem始终以元素的font-size为基准 —— 所以1rem === 16px(除非你改了html { font-size: ... }) -
em是相对于**父元素**的font-size计算的,嵌套层级深时容易失焦,比如:body { font-size: 20px; } p { font-size: 0.8em; } /* → 16px,因为 p 的父级 body 是 20px */ - 若父元素未设置
font-size,则继承自更上层,最终回退到浏览器默认的16px
不同标签的默认字号不是统一的 16px
虽然根默认是 16px,但浏览器内置样式表(user agent stylesheet)会给语义化标签预设不同缩放比例:
-
、、等常规块/行内元素:通常为16px(即1rem):约2em(≈32px),:约1.5em(≈24px):常为0.83em(≈13.28px)、:多数设为1em,但字体族常为monospace,视觉大小可能略异这些值可在开发者工具的 “Computed” 面板里查
font-size行,勾选 “Show all” 就能看到来源是user agent stylesheet。立即学习“前端免费学习笔记(深入)”;
重置或修改默认字号的实际影响
很多人在 CSS 开头写
html { font-size: 62.5%; }(让1rem = 10px),方便用rem写整数尺寸,但这会全局改变所有依赖rem的组件表现,尤其第三方库(如 Ant Design、Bootstrap)可能已按16px基准设计间距与字号。- 改
的font-size后,所有rem值会同比缩放,包括margin、padding、border-radius等 —— 不只是文字 - 用
vw或媒体查询动态调整html font-size实现响应式字号时,要测试小屏下是否过小(iOS Safari 对小于11px的字号会强制放大) - 用户系统级“字号放大”设置(Windows 缩放 / macOS Display Zoom)会影响浏览器实际渲染的
16px物理尺寸,但不会改变 CSS 计算值
真正需要干预默认字号的场景其实不多;多数情况下,直接基于
16px基准写rem,再用@media处理断点,比全局重设更可控。










