自定义字体使用场景
Web 自定义字体的常见应用场景及实现方式
问题
Web 开发中,什么时候需要使用自定义字体?如何实现?
解答
常见使用场景
1. 品牌字体
企业官网、产品页面需要使用品牌专属字体,保持视觉一致性。
2. 图标字体
使用字体图标(如 Font Awesome、iconfont)代替图片,便于缩放和样式控制。
3. 特殊设计效果
标题、Banner、活动页面需要艺术字体来增强视觉冲击力。
4. 多语言支持
某些语言(如阿拉伯语、泰语)需要特定字体才能正确显示。
5. 代码展示
技术博客、文档站点使用等宽字体展示代码。
实现方式
/* 定义自定义字体 */
@font-face {
font-family: 'MyFont';
src: url('./fonts/myfont.woff2') format('woff2'),
url('./fonts/myfont.woff') format('woff');
font-weight: normal;
font-style: normal;
font-display: swap; /* 优化加载体验 */
}
/* 使用自定义字体 */
.brand-title {
font-family: 'MyFont', sans-serif;
}
字体格式优先级
@font-face {
font-family: 'OptimizedFont';
src: url('font.woff2') format('woff2'), /* 最小,优先 */
url('font.woff') format('woff'), /* 兼容性好 */
url('font.ttf') format('truetype'); /* 兜底 */
}
图标字体示例
<!-- 引入图标字体 -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css">
<!-- 使用图标 -->
<i class="fa fa-home"></i>
<i class="fa fa-search"></i>
font-display 属性
@font-face {
font-family: 'MyFont';
src: url('font.woff2') format('woff2');
/*
* auto: 浏览器默认行为
* block: 短暂隐藏文字,等待字体加载
* swap: 先用后备字体,加载完成后替换
* fallback: 短暂隐藏,超时则用后备字体
* optional: 根据网络情况决定是否使用
*/
font-display: swap;
}
关键点
- 品牌一致性:企业网站使用专属字体强化品牌形象
- 图标字体:矢量图标,支持任意缩放和 CSS 样式控制
- 格式选择:优先使用 woff2,体积最小、兼容性好
- 加载优化:使用
font-display: swap避免文字闪烁 - 性能考虑:字体文件较大时考虑子集化或按需加载
目录