← 返回博客
Web Development 6 min

2026 香港雙語網站字體載入實戰:Variable Fonts、font-display 與 Subsetting 的黃金組合

為何香港雙語網站的字體載入是門「高危」生意

S

S.C.G.A. Team

10 6, 2026

2026 香港雙語網站字體載入實戰:Variable Fonts、font-display 與 Subsetting 的黃金組合

為何香港雙語網站的字體載入是門「高危」生意

在香港做網站,你幾乎不可能只服務單一語言。一間中環的律師行網站,導航欄可能是英文,但服務條款與免責聲明要用繁體中文;一間旺角的連鎖茶飲店,會員 App 的介面按鈕是「儲積分 / Earn Points」,但推送通知卻寫「您嘅凍檸茶買一送一優惠即將到期」。這種中英夾雜(Code-mixing)的內容生態,直接令字體載入變成技術債的重災區。

傳統做法是分別載入一套英文字體(如 Inter、Roboto)加一套中文字體(如 Noto Sans TC、思源黑體)。問題是:一套完整的繁體中文字體檔動輒 5MB 至 15MB,未經處理就直接 <link> 進 HTML,等於叫用家先下載一部 4K 電影的頭十秒,才看到你的首頁標題。根據我們在 2025 年為客戶做的內部審計,超過六成香港企業網站的 Largest Contentful Paint(LCP)超過 4 秒,當中字體載入佔了延遲來源的 35% 至 50%。到了 2026 年,Google 的 Core Web Vitals 早已將 INP(Interaction to Next Paint)納入排名因素,字體載入不再是「美觀問題」,而是直接影響生意轉換的營運問題。

Variable Fonts:一套檔案走天涯的香港適用性

Variable fonts(可變字體)在 2026 年已不是新鮮事,但在香港雙語場景的應用仍然被低估。傳統靜態字體要支援 Regular、Medium、Bold 三個字重,就要三個檔案;variable fonts 把整個設計空間壓縮進單一檔案,用 font-variation-settings 動態調校。對於中英混排的網站,這意味著你可以用同一套 variable font 同時處理英文的細膩字重過渡,以及中文筆畫的粗細變化。

以香港某虛擬銀行的手機 App 網頁版為例,他們原本用 Noto Sans TC 的三個靜態字重,合共 8.7MB;改用 Noto Sans TC Variable 之後,單一檔案 4.2MB,配合下面會談到的 subsetting,最終壓到 280KB。更關鍵的是,variable fonts 讓設計師可以在 hover 狀態做流暢的字重動畫,例如「立即申請」按鈕由 400 漸變到 700,這在靜態字體年代要麼做不到,要麼要載入額外檔案。當然,不是所有中文字體都有 variable 版本,2026 年市場上真正堪用的繁體中文 variable fonts 仍然有限,這是香港開發者要面對的現實限制。

Subsetting:把 15MB 中文字體切成「啱用」的碎片

中文字體載入的核心矛盾在於:常用字只有三千個左右,但字體檔要收錄兩萬多個字符。Subsetting(子集化)就是只抽取網站實際用到的字符,重新打包成一個小檔案。香港網站的子集化策略比純英文或純簡體中文網站複雜,因為要同時處理:繁體中文常用字、英文大小寫與標點、以及香港特有的粵語字(如「嘅」「咗」「啲」「冇」)。

實務上,我們建議香港客戶採用「靜態子集 + 動態補載」的混合模式。靜態子集針對首屏可見的內容(導航、標題、CTA 按鈕),預先產生一個 80KB 至 150KB 的檔案;動態補載則用 unicode-range 配合 Intersection Observer,當用家滾動到含有罕見字的區塊時,才非同步載入第二個子集檔案。以一個典型的香港網上商店為例,首頁的靜態子集只需覆蓋「最新優惠」「立即選購」「送貨條款」等 600 個字符,體積可控制在 90KB 以內。剩下的產品描述、用家評論等長尾內容,就用動態補載處理。這套做法在 2026 年已有成熟的 build tool 支援,例如 subfont 和 glyphhanger 都加入了對香港粵語字集的預設配置。

font-display 的抉擇:香港用家的耐性臨界點

font-display 這個 CSS 屬性決定了字體未載入完成時,瀏覽器要顯示什麼。選項包括 auto、block、swap、fallback、optional。對於香港市場,我們的數據顯示用家的耐性臨界點大約在 1.2 秒:如果 1.2 秒內看不到主要內容,跳出率會上升 18%。這意味著 block(先隱藏文字最多 3 秒)幾乎是自殺式選擇,因為它會令用家面對一片空白。

swap 是大多數香港網站的合理起點:先用系統字體顯示文字,字體載入完成後再替換。問題是「FOUT」(Flash of Unstyled Text)會造成版面跳動(CLS),這在 2026 年的 Core Web Vitals 中仍然扣分。我們的建議是:對英文用 swap,對中文用 optional。因為英文系統字體(如 Helvetica、Arial)與網頁字體的視覺差異較小,替換時的跳動可接受;但中文系統字體(如微軟正黑體、蘋方)與網頁字體的差異較大,用 optional 讓瀏覽器在 100ms 內決定是否使用網頁字體,若來不及就永久使用系統字體,避免用家看到「半途而廢」的替換。這套「英 swap、中 optional」的策略,我們在香港三個零售客戶的 A/B 測試中,令 CLS 由 0.24 降至 0.06,同時 LCP 改善 22%。

香港案例:從 3.2 秒到 0.48 秒的實際路徑

讓我們看一個具體案例。一間在香港有 12 間分店的餐飲集團,其網站原本用完整版思源黑體(繁體),單一檔案 12.4MB,配上兩個英文字重,總字體載入量 14.8MB。在 4G 網絡下,LCP 是 3.2 秒,CLS 是 0.31。我們在 2025 年底為他們重新設計字體策略,步驟如下:第一,將中文改為 Noto Sans TC Variable,英文改為 Inter Variable,合共兩個檔案;第二,用 glyphhanger 分析全站 HTML,產生一個覆蓋首屏 480 個字符的靜態子集,體積 72KB;第三,設定 font-display: optional 於中文,swap 於英文;第四,用 preload 提示瀏覽器優先下載首屏子集。

結果:字體總載入量由 14.8MB 降至 310KB,LCP 由 3.2 秒降至 0.48 秒,CLS 由 0.31 降至 0.04。更直接的商業影響是:網上訂座轉換率上升 14%,手機版跳出率下降 21%。這個案例說明了,字體載入不是單純的技術優化,而是直接影響營收的商業決策。2026 年的香港市場,用家對網站速度的要求只會更嚴苛,與其等到 Core Web Vitals 報告變紅才補救,不如現在就把字體策略當作產品路線圖的一部分。

2026 年的實作清單與常見陷阱

如果你正在為香港的雙語網站規劃字體策略,以下是我們建議的實作清單。第一,優先選用有 variable 版本的字體,並確認它支援繁體中文與粵語字。第二,用 build tool 自動產生子集,並將子集流程納入 CI/CD,每次內容更新都重新產生。第三,英文用 swap、中文用 optional,並用 preload 標記首屏子集。第四,用 size-adjust 和 ascent-override 調整 fallback 字體的度量,減少 CLS。第五,定期用 Lighthouse 和 WebPageTest 從香港節點測試,因為伺服器位置會影響字體檔的下載速度。

常見陷阱方面,最多人忽略的是「子集與動態內容的脫節」。例如網站有一個即時新聞區塊,每天更新,如果子集只涵蓋靜態頁面,新出現的字就會 fallback 到系統字體,造成視覺不一致。解決方法是將動態內容的字集也納入子集產生流程,或者用 unicode-range 做分層載入。另一個陷阱是「過度子集化」:把子集切得太細,導致瀏覽器要發出大量請求,反而拖慢載入。我們的經驗是,一個香港雙語網站的字體檔案數量控制在 3 至 5 個以內最為理想。字體載入沒有銀彈,但有一套清晰的原則可以遵循,而 2026 年的工具鏈已經足夠成熟,讓香港的開發團隊可以用合理成本做到接近完美的表現。

Share:

🎙️ 收聽呢集 podcast

訂閱我們的電子報

獲取最新見解直接送到您的收件箱