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

浏览器默认的 font-size 是多少
绝大多数现代浏览器(Chrome、Firefox、Safari、Edge)对根元素 的默认 font-size 是 16px,因此页面中未显式设置字号的普通段落(<p></p><div class="aritcle_card flexRow">
<div class="artcardd flexRow">
<a class="aritcle_card_img" href="/xiazai/skill10595" title="htmlppt.skill"><img
src="https://img.php.cn/upload/skill/001/246/273/6adaf20d79f23518.jpg" alt="htmlppt.skill" ></a>
<div class="aritcle_card_info flexColumn">
<a href="/xiazai/skill10595" title="htmlppt.skill">htmlppt.skill</a>
<p>把任意文章或文档内容转换成精美的全屏翻页 HTML 演示文件(幻灯片风格)。当用户发来一篇文章、文档链接、Markdown 内容、或粘贴的文本,并且希望生成演示用的 HTML 时触发。支持任意内容来源:iWiki 链接、KM 链接、本地文件路径、直接粘贴的文本。生成的 HTML 文件保存到本地工作区,并通过企微直接发送给用户。触发词示例:帮我把这篇文章做成PPT、转成演示文档、生成HTML幻灯片、做个演示、转成可以演示的格式、article to deck、make a slide。</p>
</div>
<a href="/xiazai/skill10595" title="htmlppt.skill" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a>
</div>
</div>)、标题(<h1></h1>–<h6></h6>)等,其计算基准都基于这个值。注意:这不是 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)会给语义化标签预设不同缩放比例:
-
<p></p>、<span></span>、<div> 等常规块/行内元素:通常为 <code>16px(即1rem) -
<h1></h1>:约2em(≈32px),<h2></h2>:约1.5em(≈24px) -
<small></small>:常为0.83em(≈13.28px) <code>、<pre class="brush:php;toolbar:false;"></pre>:多数设为1em,但字体族常为monospace,视觉大小可能略异- 改
的font-size后,所有rem值会同比缩放,包括margin、padding、border-radius等 —— 不只是文字 - 用
vw或媒体查询动态调整html font-size实现响应式字号时,要测试小屏下是否过小(iOS Safari 对小于11px的字号会强制放大) - 用户系统级“字号放大”设置(Windows 缩放 / macOS Display Zoom)会影响浏览器实际渲染的
16px物理尺寸,但不会改变 CSS 计算值
这些值可在开发者工具的 “Computed” 面板里查 font-size 行,勾选 “Show all” 就能看到来源是 user agent stylesheet。
立即学习“前端免费学习笔记(深入)”;
重置或修改默认字号的实际影响
很多人在 CSS 开头写 html { font-size: 62.5%; }(让 1rem = 10px),方便用 rem 写整数尺寸,但这会全局改变所有依赖 rem 的组件表现,尤其第三方库(如 Ant Design、Bootstrap)可能已按 16px 基准设计间距与字号。
真正需要干预默认字号的场景其实不多;多数情况下,直接基于 16px 基准写 rem,再用 @media 处理断点,比全局重设更可控。

















