font-size 设置不生效主因是浏览器最小字号限制(如中文下强制≥12px)、CSS层叠覆盖及单位使用不当;需检查Computed面板、避免奇数值、显式重置表单元素样式,并确保viewport和根字体设置正确。

font-size 设置不生效,多数不是代码写错了,而是被浏览器限制、样式覆盖或单位逻辑干扰了。核心问题常集中在三类:最小字号强制限制、CSS 层叠与继承干扰、单位与渲染机制不匹配。
浏览器强制最小字号(12px 门槛)
Chrome、Edge、Safari 等主流浏览器在中文环境下默认将 font-size 小于 12px 的值截断为 12px,这是出于可读性考虑的硬性限制,并非 bug。例如:
-
font-size: 10px;→ 实际渲染仍为 12px -
font-size: 11.5px;→ 同样被向上取整或钳制为 12px - 该限制与操作系统语言、浏览器版本相关,但中文界面下基本统一
样式被覆盖或优先级不足
即使写了 font-size: 14px,也可能没生效,因为:
- 父元素设置了
font-size: 12px,而子元素用em或%单位,导致计算结果偏离预期(如font-size: 0.8em→ 实际 9.6px → 被钳制为 12px) - 外部 CSS 文件、框架样式(如 Bootstrap)、或浏览器默认样式表(user agent stylesheet)优先级更高
- 内联样式或更具体的选择器(如
div p.text)覆盖了你的规则
建议用浏览器开发者工具「Computed」面板查看最终生效的 font-size 值及来源,确认是否被覆盖。
立即学习“前端免费学习笔记(深入)”;
单位与渲染细节引发的“假失效”
一些看似正常的设置,在特定条件下会出人意料:
-
奇数值兼容问题:部分旧版浏览器对
13px、15px等奇数尺寸支持不稳定,可能自动向下/向上取偶(如显示为 12px 或 14px),推荐统一使用偶数(12、14、16、18)提升兼容性 -
input/button 等表单元素:自带 UA 样式强,默认 font-size 可能被重置,需显式声明
font-family: inherit; font-size: 14px; -
rem/em 的根基准偏移:若
html { font-size: 10px; },那1.4rem是 14px;但若未设置 html 字体,就依赖浏览器默认 16px,容易误判
移动端与响应式场景的额外注意
iOS Safari 和 Android Chrome 在缩放、viewport 设置不当时,也会让 font-size 表现异常:
- 缺少
,会导致字体被强制放大 - 启用
-webkit-text-size-adjust(已废弃)或用户手动调大系统字体,会覆盖页面设定 - 媒体查询中用
em或rem配合动态根字体时,需确保层级计算链清晰,避免嵌套缩放失真










