AMP

amp-font

已停用

說明

觸發並監控 AMP 網頁上自訂字型的載入。

 

必要指令碼

<script async custom-element="amp-font" src="https://cdn.ampproject.org/v0/amp-font-0.1.js"></script>

支援的版面配置

此元件已停用,不應再使用。請改用 font-display 描述元,以指定字型在準備就緒時的顯示方式。

amp-font 元件是 AMP 用於控制字型載入逾時的解決方案。隨著瀏覽器廣泛採用 font-display,此元件已不再必要。此處僅供舊版使用者參考。請改用 font-display 描述元,以指定字型在準備就緒時的顯示方式。

用法

在過去,amp-font 擴充功能用於控制字型載入的逾時。我們建議改用 font-display 來實作此功能。

amp-font 擴充功能可根據字型是否已載入或處於錯誤狀態,從 document.documentElementdocument.body 新增和移除 CSS 類別。

範例

<amp-font
  layout="nodisplay"
  font-family="My Font"
  timeout="3000"
  on-error-remove-class="my-font-loading"
  on-error-add-class="my-font-missing"
></amp-font>
<amp-font
  layout="nodisplay"
  font-family="My Other Font"
  timeout="1000"
  on-load-add-class="my-other-font-loaded"
  on-load-remove-class="my-other-font-loading"
></amp-font>

此元件會觀察字型的載入。當字型成功載入時,它會執行選填的 on-load-add-classon-load-remove-class 屬性。如果字型載入導致錯誤或逾時,則會執行 on-error-remove-classon-error-add-class。這些類別會在獨立文件的 documentElement 上切換,而在沒有 documentElement 的文件 (即 ShadowRoot 內) 則會在 body 上切換。

使用這些類別來防止顯示字型,並獲得以下結果

  • 在 Safari 中取得與其他瀏覽器類似的短暫逾時 (例如 3000 毫秒)
  • 實作 FOIT,讓網頁在字型載入前不顯示任何文字
  • 讓逾時非常短,並且僅在字型已快取時才使用。

屬性

font-family

自訂載入字型的字型系列。

timeout (選填)

自訂字型載入的允許時間 (毫秒)。未定義時預設為 3000。設定為 0 時,元件僅在字型位於快取中時載入字型。如果設定為無效值,則會預設回 3000。

on-load-add-class (選填)

自訂字型可用後,要新增至文件根目錄的 CSS 類別。

on-load-remove-class (選填)

自訂字型可用後,要從文件根目錄移除的 CSS 類別。

on-error-add-class (選填)

在逾時間隔結束前字型無法使用時,要新增至文件根目錄的 CSS 類別。

on-error-remove-class (選填)

在逾時間隔結束前字型無法使用時,要從文件根目錄移除的 CSS 類別。

font-weight (選填)

行為與標準 CSS font-weight 屬性相同。

font-style (選填)

行為與標準 CSS font-style 屬性相同。

font-variant (選填)

行為與標準 CSS font-variant 屬性相同。

layout (版面配置)

layout 屬性必須設定為 nodisplay

驗證

請參閱 AMP 驗證器規格中的 amp-font 規則

需要更多協助嗎?

您已閱讀此文件十幾次,但它仍然沒有涵蓋您的所有問題嗎?也許其他人也有同感:在 Stack Overflow 上與他們聯繫。

前往 Stack Overflow
發現錯誤或缺少功能?

AMP 專案非常鼓勵您的參與和貢獻!我們希望您能成為我們開放原始碼社群的長期參與者,但我們也歡迎針對您特別熱衷的問題提供一次性的貢獻。

前往 GitHub