当前位置: 首页 > news >正文

网页中调用自定义字体可以通过 ‌CSS‌ 的 @font-face 规则实现

以下是详细方法:

1. 使用系统默认字体

如果只是希望指定字体,可以直接使用 font-family

body {
  font-family: "Microsoft YaHei", "PingFang SC", sans-serif; /* 中英文适配 */
}
 

2. 使用自定义字体(推荐方法)

步骤 1:准备字体文件
  • 格式支持:.ttf.woff.woff2(推荐 .woff2,体积更小)。
  • 合法来源:确保字体有商用授权(免费字体如 ‌思源黑体、阿里巴巴普惠体‌)。
步骤 2:通过 @font-face 引入

@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; /* 避免文字闪烁(异步加载时显示备用字体) */
}

 

步骤 3:应用字体

body {
  font-family: "MyFont", sans-serif; /* 回退到默认无衬线字体 */
}

 

3. 使用在线字体服务

Google Fonts(需外网)

<!-- 在HTML头部引入 -->
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap" rel="stylesheet">

<!-- CSS中使用 -->
body {
  font-family: 'Roboto', sans-serif;
}

 

国内替代方案(如阿里巴巴普惠体)

@font-face {
  font-family: "AlibabaPuHuiTi";
  src: url("https://xxx/AlibabaPuHuiTi.woff2") format("woff2");
}

 

4. 优化加载性能

  • 子集化‌:通过工具(如 Font-spider)提取页面中实际用到的字符,减少字体文件体积。
  • 预加载‌(提升速度):

<link rel="preload" href="fonts/myfont.woff2" as="font" type="font/woff2" crossorigin>
 

注意事项

  1. 版权问题‌:确保字体允许网页嵌入(查看字体许可证)。
  2. 兼容性‌:
    • .woff2 支持现代浏览器,IE需 .eot 格式。
    • 提供多种格式的 src 以兼容旧浏览器。
  3. FOIT/FOUT‌:通过 font-display: swap 避免加载期间文字不可见。

示例项目结构

项目目录/
├── fonts/
│   ├── myfont.woff2
│   └── myfont.woff
└── style.css

 

在 style.css 中定义 @font-face 后即可全局使用

相关文章:

  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | RandomChoicePicker(标签生成)
  • 【C++】继承和派生
  • STM32 Bootloader:使用文件头加载并启动应用程序
  • Python 函数参数详解:从基础到高级用法
  • 路由交换技术-思科拓扑搭建
  • 嵌入式通信模块实战新范式:基于虚拟仿真平台的NB-IoT核心技能训练——零硬件损耗的全栈式实验方案,重构物联网通信教学逻辑
  • 16层混压PCB的精密重构:高频基板局部化的黄金法则
  • 技术赋能——AI社媒矩阵营销工具如何重构社媒矩阵底层架构
  • 【hadoop】疫情离线分析案例
  • 山东大学 2025 web数据管理期末复习总结
  • 使用文件的基本操作和文件内容读写操作实现三个功能
  • 玛哈特零件矫平机:精密制造中的平整度守护者
  • 【11408学习记录】考研数学核心突破:矩阵本质、系统信息与向量空间基
  • Flutter 小技巧之:实现 iOS 26 的 “液态玻璃”
  • LLaMA Factory 微调教程:如何构建高质量数据集?
  • 低代码二次开发指南:基于HENGSHI SENSE的自动化报表生成教程
  • 【Docker基础】Docker核心概念:容器(Container)与镜像(Image)的区别与联系
  • (二十六)深度解析领域特定语言(DSL)第四章——词法分析:基于正则表达式的词法分析器
  • 【从零学习JVM|第七篇】快速了解直接内存
  • 用volatile修饰数组代表什么意思,Java
  • 工业网站建设/百度app推广
  • 山西太原网站建设/创建免费网站
  • 河南省住房和城乡建设厅网站首页/快速优化官网
  • 浙江网站建设制作流程/自己做网站的流程
  • 湖南省金力电力建设有限公司 网站/设计网络营销方案
  • 个人网页简历设计/建网站seo