标签不能用于现代网页定义基准字体,HTML5 已将其完全移除,仅 IE9 及更早版本支持但行为不可靠;应使用 CSS 的 body { font-size: 16px; } 或 font-size: 1rem; 替代,遵循结构与样式分离原则。

<basefont> 标签**不能用于现代网页定义基准字体**——它在 HTML5 中已被完全移除,所有主流浏览器(Chrome、Firefox、Safari、Edge)均不支持,仅 IE9 及更早版本能解析,且行为不可靠。
如果你在调试旧页面时看到 <basefont size="4"> 这类代码,它不会生效;如果页面看起来“似乎还起作用”,大概率是浏览器的容错渲染或 CSS 覆盖了默认样式,而非 <basefont> 真正起了作用。
为什么 <basefont> 会被废弃
该标签把表现层逻辑硬编码进 HTML 结构,违背了「结构与样式分离」原则。HTML 应只负责语义(比如 <h1></h1> 是标题,<p></p> 是段落),而字号、颜色、字体家族这些必须由 CSS 控制。
CSS 替代方案:用 body 设置全局字体大小
最直接、兼容性最好、且符合现代标准的做法是:
- 在
中写<style>body { font-size: 16px; }</style> - 或使用外部 CSS 文件中的
body { font-size: 1rem; }(推荐用相对单位,便于响应式) - 注意:
font-size设在body上,会作为后代元素的计算基准(例如h1 { font-size: 2em; }就是 32px) - 不要用
html { font-size: 10px; }来“缩放全局”,除非你明确需要 rem 基准重设——这容易引发意外继承问题
<basefont size> 的历史取值和陷阱
<basefont size> 使用的是 HTML 的“相对字号系统”(1–7),不是像素或 em:
-
size="3"是默认值(约等于 16px),但不同浏览器解释不一 -
size="+2"或size="-1"是相对调整,但仅 IE 支持,且无法与 CSS 单位对齐 - 即使强行写
<basefont size="5">,现代浏览器会忽略该标签,同时也不报错——你根本察觉不到它失效了 - 若混用
<basefont>和 CSS,CSS 优先级更高,但<basefont>仍会污染 HTML 结构,增加维护成本
真正要检查的:字体继承是否被意外打断
很多人以为“没设 <basefont> 字体就乱了”,实际常因以下原因:
- 某个中间容器(如
<div class="card">)写了 <code>font-size: 0.875rem;,但没重置子元素的em/rem计算上下文 - CSS 重置库(如 normalize.css)修改了
body默认font-size,而你没意识到 - 用了
font简写属性却漏写了font-size,导致继承被切断 - Web 字体加载失败后 fallback 字体的字号渲染差异(比如系统字体比 Web 字体小一圈)
遇到字号不一致,优先查 computed styles,而不是翻找早已失效的 <basefont> 标签。


















