用 font-size 控制字号需依靠 css,推荐使用 rem 单位建立相对缩放体系,避免混用单位及废弃的 标签,并通过开发者工具排查层叠与继承问题。

用 font-size 控制不同文字的字号
HTML 本身不直接提供“设置字号大小不一样”的标签,所有字号差异都靠 CSS 的 font-size 属性实现。浏览器默认对 h1~h6、p、span 等元素有基础样式,但它们的字号不是固定写死的,而是由当前生效的 CSS 规则决定。
实操建议:
- 优先用类名(
class)而不是内联style,方便复用和维护 -
font-size支持多种单位:px(绝对像素)、em(相对于父元素)、rem(相对于根元素html)、%(百分比),推荐新手从rem入手,兼顾可访问性和响应性 - 避免混用
px和em在同一层级,容易因继承关系导致字号意外放大或缩小
为什么 <font size=""></font> 不行了
<font></font> 是 HTML 3.2 的遗留标签,在 HTML5 中已被完全废弃。现代浏览器虽可能渲染它,但不保证行为一致,且会被 Lighthouse、W3C 验证器标为错误。
常见错误现象:
立即学习“前端免费学习笔记(深入)”;
- 在 Chrome 或 Firefox 中看似有效,但在 Safari 某些版本里失效
- 用
size="3"这类数字值时,实际映射关系模糊(比如size="1"不等于1px),不同浏览器解释不同 - 与 CSS 的
font-size同时存在时,层叠优先级混乱,调试困难
怎样让标题和正文字号自然拉开层次
单纯写 h1 { font-size: 28px; } 和 p { font-size: 16px; } 很容易陷入“数值硬编码”陷阱——一旦设计稿调整字号比例,就得逐个改。
技术上面应用了三层结构,AJAX框架,URL重写等基础的开发。并用了动软的代码生成器及数据访问类,加进了一些自己用到的小功能,算是整理了一些自己的操作类。系统设计上面说不出用什么模式,大体设计是后台分两级分类,设置好一级之后,再设置二级并选择栏目类型,如内容,列表,上传文件,新窗口等。这样就可以生成无限多个二级分类,也就是网站栏目。对于扩展性来说,如果有新的需求可以直接加一个栏目类型并新加功能操作
更稳妥的做法是建立相对缩放体系:
- 先在
html标签上设基准:例如html { font-size: 16px; }(这是多数浏览器默认值) - 然后用
rem定义各级标题:h1 { font-size: 2.5rem; }→ 实际 40px;p { font-size: 1rem; }→ 实际 16px - 如果需要适配小屏,只需改
html的font-size(如媒体查询中设为14px),整站字号自动等比缩小
注意:rem 对 IE9+ 有效,IE8 及更早版本不支持,但这类环境现在极少需要兼容。
遇到 font-size 不生效?先查这三件事
最常被忽略的是 CSS 层叠和继承干扰,而不是写法本身错。
- 检查是否被更高优先级的选择器覆盖(比如
body p比p优先级高) - 确认元素是否被设置了
font-size: inherit或font-size: unset,导致它“听话”地继承了父级字号 - 用浏览器开发者工具的“Computed”面板看最终生效的
font-size值,并点开来源链接,定位是哪条规则在起作用
一个典型坑:给 button 设 font-size: 14px 没反应?可能是浏览器默认样式表里 button 的 font 属性整体覆盖了单独的 font-size,此时要重置整个 font 或加 !important(仅限调试,上线前应理清层叠逻辑)。
字号差异这事,表面是数值大小,背后其实是单位选择、继承链、选择器权重三者的实时博弈。调不出来时,别急着改数字,先打开开发者工具看“真正生效的是哪一行”。









