Bootstrap默认使用Helvetica Neue、Helvetica、Arial、sans-serif字体栈,基础字号16px,行高1.5;可通过CSS变量--bs-body-font-family覆盖字体,调整:root font-size统一流畅缩放,或用fs-*工具类局部微调。

如果您在使用 Bootstrap 框架时发现文本显示为 Helvetica Neue、Helvetica、Arial 或 sans-serif 字体栈,且段落行高为 1.5、基础字号为 16px,这正是其默认排版行为的体现。以下是针对 Bootstrap 默认字体与排版设置的多种调整路径及对应影响说明:
一、通过 CSS 自定义属性覆盖默认字体栈
Bootstrap 5.3+ 使用 CSS 自定义属性统一管理字体,核心变量为 --bs-body-font-family,所有依赖该变量的组件(如 .btn、.form-control、.alert)将同步更新。此方式无需重写每个选择器,保持样式一致性。
1、确保您的自定义 CSS 文件或
2、在 :root 作用域中声明新字体栈,例如:
3、对部分浏览器中可能忽略变量的组件(如 .form-select),额外添加显式声明:
.form-select { font-family: var(--bs-body-font-family); }
二、修改根元素基础字号以统一流畅缩放
Bootstrap 所有文本尺寸(如 h1 的 2.5rem、p 的 1rem)均基于 :root 或 html 的 font-size 计算。直接修改根字号可使 line-height、margin-bottom 等 rem 单位值自动按比例放大,避免手动调整导致的行距塌陷或间距失衡。
1、在自定义 CSS 末尾添加:
2、验证 DevTools → Elements → Computed 中 font-size 是否已更新为 18px;
3、检查 p 元素的 margin-bottom 计算值是否同步变为 18px(原为 1rem = 16px);
三、使用 Bootstrap 内置字体大小工具类局部调整
当仅需对特定文本微调字号,而不影响全局排版比例时,可采用 fs-* 工具类。这些类仅设置 font-size,不干预 font-weight 或 line-height,适用于表格操作文案、卡片标题等场景。
1、为某段落应用 h4 尺寸效果:
这段文字等同于 h4 尺寸
2、若需响应式适配,在断点后缀添加前缀,例如:
中屏用 fs-4,大屏降为 fs-3
3、注意 fs-* 类不继承父级 font-size,其值为绝对生效,不可叠加 rem 缩放逻辑;
四、通过 @font-face 预加载关键字体并控制渲染行为
即使设置了 --bs-body-font-family,若字体文件未加载完成,浏览器会短暂回退至系统默认字体。使用 @font-face 可预加载字体资源,并借助 font-display: swap 确保文本及时可见,同时避免 FOIT(Flash of Invisible Text)。
1、在 CSS 开头定义字体资源:
@font-face {
font-family: "Inter";
src: url("inter-var-latin.woff2") format("woff2");
font-display: swap;
}
2、确保字体文件路径可访问,且 MIME 类型配置正确;
3、配合 preload 标签在 HTML head 中提前获取:
五、直接重写 body 及标题标签字体声明(兼容旧版本)
在 Bootstrap 4 或未启用 CSS 变量的项目中,可通过覆盖 body、h1–h6、p 等原生标签的 font-family 实现字体替换。该方法简单直接,但需注意组件样式可能未继承 body 字体(如 .btn 默认读取自身 font-family 声明)。
1、在自定义 CSS 中添加:
body { font-family: "Microsoft YaHei", "SimSun", sans-serif; }
2、单独处理易遗漏组件:
.btn, .form-control, .dropdown-item { font-family: inherit; }
3、对中文优先场景,建议提供多层字体回退:微软雅黑 → 宋体 → sans-serif,避免 iOS 或 Linux 系统下缺失字体导致渲染异常;











