开发常见问题
目录
- 页面上字体没生效
- 字体页「获取代码」的地址打不开
- 部分字显示成别的字体
- 字变粗了、变斜了,很难看
- 两个字重,只有一个生效
- 自己写 @font-face 时,别用 local() 指向常见字体名
- 加载时文字先是系统字体,然后跳一下
- 能不能用在 App 或小程序里
- REST API 调不通
- 文档写错了
适合谁看:接入文风网页字体时遇到问题的开发者和站长。
页面上字体没生效
按顺序查:
- CSS 地址能不能打开。 在浏览器里直接打开
result.css地址。404 多半是目录名写成了大写、字重名大小写不对,或这款字没有你写的子集。规则见《网页字体地址规则》。 - 字体名对不对。
font-family要和 CSS 里声明的名字一字不差。最常见的错误是按目录名自己猜了一个名字。见《在 CSS 里使用:字体名、备用字体和多字重》。 - 样式有没有被覆盖。 在开发者工具「元素」面板选中文字,看「计算样式」里的
font-family是不是你写的那个。 - 网络请求。 「网络」面板筛选「字体」,看 woff2 有没有下载、状态是不是 200。
字体页「获取代码」的地址打不开
复制后先在浏览器打开代码里的 CSS 地址。打不开就按 https://cn.windfonts.com/fonts-packages/{目录名}/{字重}/full/result.css 自己拼。
部分字显示成别的字体
- 用了
zh、zh-common或en子集,有些字不在子集里。换成full。 - 这款字本身没有这个字。在字体页「查字」里确认。生僻字、繁体字常见这种情况。
- 繁体、日文显示成方框的问题,见《繁体、日文、生僻字显示成方框怎么办》。
字变粗了、变斜了,很难看
字体只有一档字重或一种样式,而你的 CSS 要求了别的粗细或斜体,浏览器就会自己加粗、拉斜。去掉多余的 font-weight、font-style,或加上 font-synthesis: none;。
两个字重,只有一个生效
两份 CSS 声明了相同的 font-weight 数值,后引入的会盖住先引入的。打开两份 CSS 对比 font-weight,只保留一份。
自己写 @font-face 时,别用 local() 指向常见字体名
如果你自己拼 @font-face,src 里写了 local("某某字体"),访问者电脑上恰好装了同名字体(版本可能不同、字重可能不全),浏览器会优先用本机那份,导致不同访问者看到的字形不一样。自托管时直接用 url() 指向你的 woff2,不要另加 local()。
加载时文字先是系统字体,然后跳一下
这是 font-display: swap 的正常表现:先显示,再替换。减少跳动的办法见《性能:子集、字体显示策略和预连接》。
能不能用在 App 或小程序里
App 和小程序加载外部字体各有自己的规则,能不能直接引用网页字体地址,以平台的官方文档为准。不管在哪里用,都请保留授权注释,见《保留授权注释》。
把字体文件打包进 App 安装包属于「嵌入软件」,要先确认许可允许,见《这款字能不能商用:五步自查》。
REST API 调不通
API 目前在维护中,见《字体元数据 REST API(维护中)》。网页字体的 CSS 引用不受影响。
文档写错了
写信到 docs@windfonts.com,写清页面标题和错误的地方。