noeFly's profile picture

emfont 免費中文網頁字體服務

Google Fonts 找不到中文字體?這裡有!

TaiwanNuxtVue.js

7/7/2025

這是什麼能吃嗎?

一個字,不能。但很好用!

通常要在網站上使用字體有兩種方式:

  1. 線上字體服務,透過嵌入部分程式碼(script)讓網頁可以讀取第三方服務提供的字體檔案

  2. 讀取本地字體,透過 CSS 設置 @font-face 即可讀取。

像是由知名公司 Google 推出的 Google Font 即是第一種。

但是既然已經有如此強大的服務為何還要 emfont 呢?Google Fonts 雖然提供了眾多的字體可以選擇,但是中文字體卻沒有足夠的選擇,故才有此文的主角 emfont。emfont 提供了許多 不同風格中、日、英、韓 文字體,彌補了 Google Fonts 的不足。

如何使用

作者提供了一個便捷的方式,使網頁開發者可以快速將此服務整合置網頁中。

選擇字體

  1. 首先先到 字體 選擇喜歡的字體,本筆記以「縫合像素字型 12px Mono」舉例。
  2. 選擇好後在字體頁面左邊有一個小框可以複製字體名稱,先點擊複製接下來會用到。
  3. 在網頁中要使用字體的段落,以類別(class)的方式貼上上一步得到的字體名稱。

我是縫合像素字型 12px Mono 的樣子!

<p class="emfont-FusionPixelFont12pxMono">我是縫合像素字型 12px Mono 的樣子!</p>

載入並啟動 emfont

  1. 在網頁中加入以下程式碼即可大功告成!

    <script type="module">
      import "https://font.emtech.cc/emfont.js"
    
      emfont.init()
    </script>

框架整合

作者提供了眾多框架快速整合的方式,詳細可以到 框架整合 頁面查看喔~

Vue.js / Nuxt

因為我的網站首頁 noefly.cc 使用 Nuxt,所以特別拉出來講。

按照作者所述,直接下面程式碼就可以快速使用:

<script setup>
import { onMounted } from "vue"

onMounted(async () => {
  const mod = await import("https://font.emtech.cc/emfont.js")
  mod.emfont.init()
})
</script>

但是,在我的網站好像會有一些問題,「mod 未定義」或是「找不到 emfont 函式」等。

一番探索後發現程式碼這樣改就可以運行了:

<script setup>
import { onMounted } from "vue"

onMounted(async () => {
  await import("https://font.emtech.cc/emfont.js")
  emfont.init()
})
</script>

如果有遇到問題的讀者,可以試試這個方法。

參考資料