font-size未生效主因是单位缺失、优先级覆盖或-webkit-appearance干扰;必须带单位(如16px),检查computed面板定位来源,配合padding与line-height,并用class切换而非内联样式。

直接写 font-size 但没生效?不是代码写错了,大概率是被更高优先级的样式盖掉了,或者单位漏了、-webkit-appearance 暗中干扰了渲染。
button 的 font-size 必须带单位才生效
写成 font-size: 16 完全无效——浏览器不认。必须明确单位:font-size: 16px、font-size: 1.2rem 或 font-size: 1.1em。
- JS 动态设置时同理:
btn.style.fontSize = '18px'才行,btn.style.fontSize = 18白忙活 -
px最直观,适合固定尺寸;rem推荐用于响应式项目(依赖html { font-size: 16px; });em会逐层继承父级字号,嵌套深时容易算错 - 移动端慎用小于
14px的值,iOS 可能触发自动缩放,导致布局跳动
为什么写了 font-size 却没变?查这三处
浏览器开发者工具(F12)打开“Computed”面板,点按钮,看 font-size 实际值和来源路径:
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
- 是否被框架样式覆盖?比如 Bootstrap 的
.btn-primary或button[type="submit"]用了更具体的选择器,优先级高于你写的button { font-size: 16px; } - 是否漏了重置
-webkit-appearance: none?iOS Safari 默认会给 button 套一层原生壳,自定义font-size和color在某些机型上直接失效 - 是否被
disabled状态劫持?禁用按钮的文字颜色和透明度会被 UA 样式强制压暗,font-size虽然还在,但视觉上可能被弱化得不明显
别只调 font-size,padding 和 line-height 得配平
单纯放大文字,按钮容易撑破、文字贴顶、或点击区域缩水:
- 按钮“看起来多大”,由
font-size+padding共同决定。推荐组合:font-size: 16px+padding: 10px 20px - 单行文字垂直居中靠
line-height,别依赖vertical-align;设line-height: 1.5或与padding匹配的值更稳 - 长文本按钮加
white-space: nowrap防折行;固定宽高按钮要配overflow: hidden+text-overflow: ellipsis - 移动端确保上下
padding≥ 12px,满足最小触控区域 44×44px 的可访问性要求
动态改字号:用 class 切换比直接改 style 更靠谱
如果按钮要支持“点一下放大/再点缩小”,别用 el.style.fontSize += '2px' 这种拼字符串方式——容易出错、难维护、易被其他 JS 覆盖:
- 预定义 CSS 类:
.text-lg { font-size: 1.25rem; }、.text-sm { font-size: 0.875rem; } - JS 里用
document.body.classList.replace('text-lg', 'text-sm')显式切换,避免toggle()在三态逻辑里翻车 - 存状态到
localStorage时,直接存带单位的值(如"18px"),加载时赋给document.documentElement.style.fontSize,别存语义字符串 - 禁用 zoom / transform: scale() ——它们不改真实字号,屏幕阅读器读不到变化,打印也失效
真正改一个按钮的字体大小,从来不是单点修改 font-size 就完事。它卡在选择器优先级、单位合法性、-webkit-appearance 干扰、padding 配比、禁用态覆盖、移动端缩放等多个环节里——哪个环节松动,效果就断在哪。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










