font-size调不动的三大主因是单位选错、作用域不清、优先级被覆盖;需检查是否被更高权重要素覆盖、继承链是否中断、单位是否误用(如16em或漏单位),并排除缓存干扰。

直接用 font-size 控制,但单位选错、作用域没理清、优先级被覆盖,是调不动字体的三大主因。
为什么写了 font-size 却没变大
常见现象:加了 font-size: 20px,文字还是小;或只在某个元素生效,同级其他文本无反应。
- 检查是否被更高权重要素覆盖——比如外部 CSS 里写了
p { font-size: 14px; },而你在内联写了style="font-size: 18px",但父容器又套了个class="small-text"且带!important - 确认继承关系:
font-size可继承,但如果你在div上设了font-size: 12px,里面p没重写,它就真按 12px 渲染,不是浏览器默认的 16px - 单位写错:比如误写成
font-size: 16em(这会放大 16 倍父级尺寸),或漏掉单位如font-size: 16(无效声明) - 缓存干扰:改了外部 CSS 文件但浏览器没刷新,可硬刷新(
Ctrl+Shift+R)或检查 DevTools 的 Network 面板看 CSS 是否加载成功
rem 和 em 到底该用哪个
这不是偏好问题,是控制粒度问题。
- 全局统一调字号(比如整站放大 10%):改
html { font-size: 17.6px; },所有1rem自动变成 17.6px,不用动任何子规则 - 组件内部缩放(比如卡片标题比正文大 20%,且希望这个比例在不同字号上下文中保持一致):用
em,.card-title { font-size: 1.2em; },它始终相对于父容器的font-size - 嵌套深时慎用
em:三层1.2em套下来就是 1.728 倍,容易失控;而rem不受嵌套影响 - 移动端适配首选
rem+html动态计算,例如用clamp():html { font-size: clamp(14px, 2.5vw, 18px); }
内联 style、<style></style>、外部 CSS 哪个更合适
不是“哪个更好”,是“哪个更不容易翻车”。
- 内联
style="font-size: ...":仅限调试或极个别不可复用场景。它优先级最高,但破坏结构/样式分离,改 10 个地方就得改 10 次,还无法被 CSS 预处理器或变量管理 -
<style></style>标签:适合单页应用或原型页面,把基础字号规则(如body { font-size: 1rem; }、h1 { font-size: 2.5rem; })集中写在这里,避免全站引入一个 CSS 文件的开销 - 外部 CSS:多页项目必须用。把
font-size规则和字体族、行高、字重打包进typography.css,再用@import或<link>引入。后续换主题、做无障碍字号切换,只改这一处
移动端字体突然变小或模糊怎么办
大概率不是 CSS 写错了,而是 <meta name="viewport"> 缺失或配置不当,或者系统缩放被忽略。
- 确保 HTML 头部有正确 viewport:
<meta name="viewport" content="width=device-width, initial-scale=1.0"> - 别在
body上直接设font-size: 14px然后让子元素用em——这会和用户系统缩放(如 Windows 的“放大文本”设置)冲突 - 用
rem时,根元素html { font-size: ... }应该设为相对值(如100%)或配合clamp(),而非固定px - 如果用了
vw单位(如h1 { font-size: 5vw; }),注意 iOS Safari 对极小vw值的渲染限制,建议加最小值兜底:font-size: clamp(16px, 5vw, 32px);
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











