You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

网页预览中自定义字体不显示的技术求助

自定义Web字体不生效?一步步排查解决

我帮你梳理下这个自定义字体没在<h2>标题上生效的问题,结合你提供的代码和已做的操作,咱们从几个关键方向排查:

1. 先确认字体文件路径是否正确

这是最常见的坑!你得先核对项目的文件结构:

  • 如果你的css文件夹里同时放了styles.cssfonts.css,那fonts.css里的url('fonts/xxx')意味着字体文件要放在css/fonts/目录下
  • 如果fonts文件夹和css文件夹是同级(比如根目录下同时有css/fonts/),那路径得改成url('../fonts/xxx')

验证小技巧:打开浏览器开发者工具(按F12)→ 切换到「Network」标签 → 刷新页面,搜索字体文件名(比如siffonoutline-webfont.ttf),如果显示404错误,那就是路径写错了,调整后再试。

2. 检查字体名称的一致性

要确保这两处完全匹配:

  • @font-face里定义的font-family: 'siffonOutline';
  • 你给<h2>设置的font-family: 'siffonOutline';

另外,我注意到你fonts.css里的SVG字体路径是#sifonnbasic_outline,这里的sifon比你定义的siffonOutline少了一个f——这很可能是字体文件实际的家族名称!你可以试试把font-family改成sifonnbasic_outline,或者用系统自带的字体查看工具(比如Windows字体查看器、Mac的Font Book)打开.ttf文件,查看它的「家族名称」,确保代码里的名称和实际一致。

3. 排查样式优先级问题

你的<h2>用了Bootstrap的display-4类,这个类可能自带了字体设置,不小心覆盖了你的自定义字体。你可以:

  • 打开开发者工具,选中<h2>元素,查看「Computed」面板里的font-family,看看实际生效的是不是其他字体
  • 如果确实被覆盖了,提高选择器优先级,比如把styles.css里的代码改成:
.page-content h2.display-4 {
  font-family: 'siffonOutline';
}

(如果还是不行,临时加!important测试:font-family: 'siffonOutline' !important;,但优先用更具体的选择器解决优先级问题)

4. 清除浏览器缓存

有时候浏览器会缓存旧的CSS或字体文件,导致新修改不生效。试试强制刷新页面(Windows按Ctrl+F5,Mac按Cmd+Shift+R),或者手动清除浏览器缓存后再预览。

5. 检查@import的语法和位置

你的styles.css里用了@import "fonts.css";,要确保:

  • 这个语句在所有其他CSS规则之前(你现在的代码是对的,放在了导航栏样式之前)
  • 如果fonts.cssstyles.css不在同一目录,要调整@import的路径,比如@import "./fonts.css";或者@import "../fonts.css";

附上你提供的关键代码片段方便参考:

index.html(关键部分)

<div class="page-content p-5" id="content">
<!-- 标题 -->
<h2 class="display-4 text-white">DEVEDAN</h2>
<p class="lead text-white mb-0">Develop your business w/ Edson & Angelika</p>
<div class="separator"></div>
</div>

fonts.css

@font-face {
font-family: 'siffonOutline';
src: url('fonts/siffonoutline-webfont.eot');
src: url('fonts/siffonoutline-webfont.eot?#iefix') format('embedded-opentype'),
url('fonts/siffonoutline-webfont.woff2') format('woff2'),
url('fonts/siffonoutline-webfont.woff') format('woff'),
url('fonts/siffonoutline-webfont.ttf') format('truetype'),
url('fonts/siffonoutline-webfont.svg#sifonnbasic_outline') format('svg');
font-weight: normal;
font-style: normal;
}

styles.css(关键部分)

/*字体引入*/
@import "fonts.css";

/*网站内容*/
h2 {
font-family: 'siffonOutline';
}

内容的提问来源于stack exchange,提问作者Angelika C.

火山引擎 最新活动