跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
CSS自定义字体
”︁
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
= CSS自定义字体 = == 介绍 == '''CSS自定义字体'''允许开发者通过<code>@font-face</code>规则加载并使用非系统默认的字体文件(如TTF、WOFF、WOFF2等)。这一功能突破了传统网页设计对用户设备字体的依赖,使设计师能够精确控制排版风格,同时保持跨平台一致性。 == 工作原理 == 浏览器通过HTTP请求获取字体文件,随后将其临时安装到用户系统中供页面渲染使用。整个过程分为三个步骤: # 定义字体家族(<code>@font-face</code>) # 指定字体文件路径(<code>src</code>属性) # 在元素中应用该字体(<code>font-family</code>) <mermaid> graph TD A[定义@font-face] --> B[指定字体文件] B --> C[应用font-family] </mermaid> == 基础语法 == 以下是最基本的<code>@font-face</code>实现: <syntaxhighlight lang="css"> @font-face { font-family: 'MyCustomFont'; src: url('fonts/myfont.woff2') format('woff2'), url('fonts/myfont.woff') format('woff'); font-weight: 400; font-style: normal; font-display: swap; } body { font-family: 'MyCustomFont', sans-serif; } </syntaxhighlight> === 参数说明 === * '''font-family''':定义引用时的字体名称 * '''src''':支持多文件回退(现代浏览器优先加载WOFF2) * '''format()''':帮助浏览器快速识别字体类型 * '''font-display: swap''':避免字体加载时的文本不可见期(FOIT) == 高级特性 == === 多字重/样式支持 === 为同一字体家族的不同变体分别定义: <syntaxhighlight lang="css"> @font-face { font-family: 'MyVariableFont'; src: url('font-bold.woff2') format('woff2'); font-weight: 700; } @font-face { font-family: 'MyVariableFont'; src: url('font-italic.woff2') format('woff2'); font-style: italic; } </syntaxhighlight> === 可变字体(Variable Fonts) === 单个文件支持多种动态变化: <syntaxhighlight lang="css"> @font-face { font-family: 'MyVF'; src: url('font.woff2') format('woff2-variations'); font-weight: 100 900; /* 定义可变范围 */ font-stretch: 75% 125%; } h1 { font-family: 'MyVF'; font-weight: 350; /* 使用中间值 */ } </syntaxhighlight> == 性能优化 == === 字体子集化 === 使用工具(如pyftsubset)只包含需要的字符: <math> 文件大小 = \sum_{i=1}^{n} (字符_i \times 编码成本) </math> === 预加载提示 === 在HTML头部添加: <syntaxhighlight lang="html"> <link rel="preload" href="font.woff2" as="font" type="font/woff2" crossorigin> </syntaxhighlight> == 浏览器兼容性 == {| class="wikitable" |- ! 格式 !! 支持版本 |- | WOFF2 | Chrome 36+, Firefox 39+ |- | WOFF | IE9+, 所有现代浏览器 |- | TTF/OTF | 部分限制支持 |} == 实际案例 == '''电商品牌定制''':某奢侈品网站使用自定义字体实现独特的品牌标识: <syntaxhighlight lang="css"> @font-face { font-family: 'LuxurySerif'; src: url('luxury.woff2') format('woff2'); unicode-range: U+0020-007F; /* 仅拉丁字符 */ } .product-title { font-family: 'LuxurySerif', serif; letter-spacing: 0.1em; } </syntaxhighlight> == 常见问题 == === FOUT处理 === 通过CSS定义回退字体匹配: <syntaxhighlight lang="css"> body { font-family: 'CustomFont', fallback-font; /* 确保回退字体有相似的度量值 */ font-size-adjust: 0.5; /* 保持x-height一致 */ } </syntaxhighlight> === 版权问题 === * 确认字体许可证允许网页嵌入 * 商业字体通常需要购买Webfont授权 * 推荐使用开源字体(如Google Fonts、Font Squirrel) == 扩展阅读 == * WOFF2压缩算法原理 * 字体渲染引擎差异(Windows/macOS) * CSS Fonts Module Level 4新特性 [[Category:编程语言]] [[Category:CSS]] [[Category:CSS文本与字体]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)