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

认识网络字体

在使用网络字体前,先回顾一下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)

呈现效果

相关推荐
风尚云网4 小时前
风尚云网前端学习:一个简易前端新手友好的HTML5页面布局与样式设计
前端·css·学习·html·html5·风尚云网
酷酷的威朗普6 小时前
医院绩效考核系统
javascript·css·vue.js·typescript·node.js·echarts·html5
渊兮兮6 小时前
Vue3 + TypeScript +动画,实现动态登陆页面
前端·javascript·css·typescript·动画
土豆湿7 小时前
拥抱极简主义前端开发:NoCss.js 引领无 CSS 编程潮流
开发语言·javascript·css
鸽鸽程序猿10 小时前
【前端】CSS
前端·css
爱上语文20 小时前
HTML和CSS 表单、表格练习
前端·css·html
小肚肚肚肚肚哦20 小时前
盘点浏览器盒模型中各种 width、height 、边距和位置属性
css·html
NightCyberpunk21 小时前
HTML、CSS
前端·css·html
南城FE21 小时前
12个更现代化的CSS单行优化技巧
前端·css
啵咿傲1 天前
重绘&重排、CSS树&DOM树&渲染树、动画加速 ✅
前端·css