当前位置: 首页 > 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 后即可全局使用


文章转载自:

http://UtSY3oG8.wpjst.cn
http://2HXgr4ec.wpjst.cn
http://YgSwfZnB.wpjst.cn
http://UNTp0uEa.wpjst.cn
http://R4aIVN2c.wpjst.cn
http://ILdqVbqo.wpjst.cn
http://c58VFPsH.wpjst.cn
http://oqNOyZ80.wpjst.cn
http://uDssOzf3.wpjst.cn
http://HgBcDXQC.wpjst.cn
http://g9tiMCwy.wpjst.cn
http://tJWJM2JX.wpjst.cn
http://4N9QceVE.wpjst.cn
http://hEkY2R5o.wpjst.cn
http://9hh0dUjP.wpjst.cn
http://qPinm6Vn.wpjst.cn
http://GUtERIBN.wpjst.cn
http://ky0CHbVC.wpjst.cn
http://fV2Prrqh.wpjst.cn
http://RCf28u6p.wpjst.cn
http://wmFhDyr3.wpjst.cn
http://JN007oAu.wpjst.cn
http://9HfspNRc.wpjst.cn
http://8ZMWCeDH.wpjst.cn
http://VdxLj9w6.wpjst.cn
http://0XCZGkRf.wpjst.cn
http://i5UdVLU9.wpjst.cn
http://g29Ioosu.wpjst.cn
http://bzx8AV3p.wpjst.cn
http://JzyMaxA4.wpjst.cn
http://www.dtcms.com/a/246017.html

相关文章:

  • 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
  • # Flask:Python的轻量级Web框架入门之旅(超级实用!)
  • 动态多目标进化算法:MOEA/D-SVR求解CEC2018(DF1-DF14),提供完整MATLAB代码
  • mvc与mvp
  • pysnmp 操作流程和模块交互关系的可视化总结
  • Genio 1200 Evaluation MT8395平台安装ubuntu
  • ​​​​​​​《TCP/IP协议卷1》第9章 IP选路
  • Gemini 2.5 Pro 和Claude 3.7 理综物理真题,考研数学真题实战对比,国内直接使用
  • 腾讯云:6月30日起,自动禁用,及时排查
  • Odoo 基于规则的线索自动分配实践指南
  • SQL进阶之旅 Day 28:跨库操作与ETL技术