如何在网站中使用网络字体

认识网络字体

在使用网络字体前,先回顾一下font-family 的使用和过程:

  • 我们需要提供一个或多个 字体种类名称,浏览器会在列表中搜寻 ,直到找到它所运行的系统上可用的字体
  • 这样的方式完全没有问题,但对于传统的web开发人员来说,字体选择是有限的;
  • 这就是所谓的Web-safe 字体;
  • 并且这种默认可选的字体并不能进行一些定制化的需求;

比如如下的字体样式,系统的字体肯定是不能实现的

那么我们是否依然可以在网页中使用这些字体呢? 使用Web Fonts 即可.

Web fonts 的工作原理

首先,我们需要通过一些渠道获取到希望使用的字体(不是开发来做的事情):

  • 对于某些收费的字体 ,我们需要获取到对应的授权
  • 对于某些公司定制的字体 ,我们需要设计人员来设计
  • 对于某些免费的字体 ,我们需要获取到对应的字体文件;

其次,在我们的css代码中使用该字体;

最后,在部署静态资源时,将HTML/CSS/JavaScript/Font 一起部署在静态服务器上.

从用户的角度来说:

  • 浏览一个网页时,因为代码中有引入字体文件,字体文件会一起被下载下来;
  • 浏览器会根据使用的字体在下载的字体文件中,查找,解析,使用对应的字体;
  • 在浏览器中使用对应的字体显示内容

如何使用Web Fonts

第一步:在字体天下网站下载一个字体

第二步:使用字体

  1. 字体放到对应的目录
  2. 通过@font-face来引入字体 ,并设置格式
  3. 使用字体

注意: @font-face 用于加载一个 自定义的字体

web-fonts 的兼容性

我们刚才使用的字体文件时 .ttf,它是TureType字体.

在开发中某些浏览器可能不支持该字体,所以为了浏览器的兼容性问题,我们需要有对应其他格式的字体;

常见字体格式

  • TrueType 字体: 拓展名是 .ttf
  • OpenType/TrueType 字体:拓展名是.ttf,.otf,建立在TrueType 字体之上
  • Embedded OpenType 字体:拓展名是.eot,OpenType字体的压缩版
  • SVG字体:拓展名是.svg,.svgz
  • WOFF 表示 Web Open Font Format web开放字体: 拓展名是.woff,建立在TrueType 字体之上

这里提供一个网站来生产对应的字体文件

font.qqe2.com/#

web fonts兼容性写法

css 复制代码
@font-face {
    font-family: "tutu";
    src: url("./font/QTxiaotu.eot"); /* IE9 */
    src: url("./font/QTxiaotu.eot?#iefix") format("embedded-opentype"),
      /* IE6-IE8 */ url("./font/QTxiaotu.woff") format("woff"),
      /* chrome、firefox */ url("./font/QTxiaotu.ttf") format("truetype"),
      /* chrome、firefox、opera、Safari, Android, iOS 4.2+ */
        url("./font/QTxiaotu.svg#uxfonteditor") format("svg"); /* iOS 4.1- */
  }

这是被称为 bulletproof @font-face syntax(刀枪不入的@font-face 语法)

  • src 用于指定字体资源
  • url 指定资源的路径
  • format 用于帮助浏览器快速识别字体的格式.

完整demo 操作例子

html 代码

html 复制代码
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      div {
        font-family: "tutu";
        font-size: 30px;
        color: aquamarine;
        text-shadow: 2px 2px forestgreen;
      }

      @font-face {
        font-family: "tutu";
        src: url("./font/QTxiaotu.eot"); /* IE9 */
        src: url("./font/QTxiaotu.eot?#iefix") format("embedded-opentype"),
          /* IE6-IE8 */ url("./font/QTxiaotu.woff") format("woff"),
          /* chrome、firefox */ url("./font/QTxiaotu.ttf") format("truetype"),
          /* chrome、firefox、opera、Safari, Android, iOS 4.2+ */
            url("./font/QTxiaotu.svg#uxfonteditor") format("svg"); /* iOS 4.1- */
      }
    </style>
  </head>
  <body>
    <div>兔年发财,跳跳更快乐!!</div>
  </body>
</html>

文件放置目录

这里需要注意, 通过转化的字体文件中的css 文件 也要拖进来,否则会出现问题.(icon.css,page.css,QTxiaotu-symbol.svg)

呈现效果

相关推荐
.生产的驴1 小时前
React useEffect组件渲染执行操作 组件生命周期 监视器 副作用
前端·css·react.js·ajax·前端框架·jquery·html5
软件技术NINI10 小时前
html css网页制作成品——HTML+CSS盐津铺子网页设计(5页)附源码
前端·css·html
Pu_Nine_911 小时前
教程: 在网页中利用原生CSS实现3D旋转动画
css·3d·css3
struggle202517 小时前
AxonHub 开源程序是一个现代 AI 网关系统,提供统一的 OpenAI、Anthropic 和 AI SDK 兼容 API
css·人工智能·typescript·go·shell·powershell
朝阳3919 小时前
CSS【实战】可编辑元素实现 placeholder -- contenteditable=“true“
css
Ares-Wang20 小时前
CSS3》》 transform、transition、translate、animation 区别
前端·css·css3
fox_1 天前
CSS3:水平垂直居中的 N 种实现方法
css
超能996要躺平1 天前
用三行 CSS 实现任意多列等分布局:深入掌握 Grid 的 repeat() 与 gap
前端·css
寒月霜华1 天前
JavaWeb-html、css-网页正文制作
前端·css·html
*濒危物种*1 天前
HTML标签语法,基本框架
前端·css·html